Restflow
¶ ↑
Simple DSL to assert REST services
Installation¶ ↑
$ gem install restflow
Usage¶ ↑
Create a file that contains the sequences of REST calls and add assertions to test the payloads you get back.
Example with a file name sequence.rb:
base_url 'https://api.github.com' sequence 'Retrieve info of a Github user' do get 'users/simcap' json['login'].should == "simcap" status.should == 200 end sequence 'Retrieve info of a Github repo' do get 'users/simcap/repos' json[0]['full_name'].should == "simcap/anagram-kata" status.should == 200 get 'repos/simcap/anagram-kata' json['name'].should == "anagram-kata" end
Then run on the file
$ restflow sequence.rb
A report file sequences-report.html will be generated in the current directory.
Examples ¶ ↑
GET asserting response code sequence 'List all users' do get 'users' status.should == 200 end sequence 'Cannot find user' do get 'users/3' status.should == 404 end GET asserting json content sequence 'List one users' do get 'users/1' json['firstname'].should == "John" json['lastname'].should == "Doe" get 'users/2' json['firstname'].should == "Sue" json['lastname'].should == "Helen" end POST inline post data sequence 'Create new user' do post 'users', <<-BODY {"firstname":"James","lastname":"Bond"} BODY get 'users/3' status.should == 200 json['firstname'].should == "James" json['lastname'].should == "Bond" end POST post data from file sequence 'Create new user with body from file' do post 'users', :file => "new_user.json" get 'users/4' status.should == 200 json['firstname'].should == "Bob" json['lastname'].should == "Marley" end DELETE sequence 'Delete users' do delete 'users/3' status.should == 200 get 'users/3' status.should == 404 delete 'users/4' status.should == 200 get 'users/4' status.should == 404 end Checking raw response content sequence 'Error when creating' do post 'users', <<-BODY {"firstname":"James"} BODY response.should =~ /lastname is missing/ post 'users', <<-BODY {"lastname":"Bond"} BODY response.should =~ /firstname is missing/ end
Copyright¶ ↑
Copyright © 2013 simcap. See LICENSE.txt for further details.