Rack Test POC
Description
rack/test based poc file generator, this will make you able to export any data that traveled through the test, and be able to create poc file with that. It is even useful for creating integration test that is based on your api endpoints, because the export file will be serialized into a yaml file that contain all the endpoints that you just tested, and it's inputs and outputs
I my self use for documentation and cooperation purpose with other developers
Install
RubyGems/gem command
$ gem install rack-test-poc
Bundler/Gemfile
gem 'rack-test-poc'
Use
All you need to do is to require 'rack/test/poc' in your test_helper when you working with rack-test module, and you good to go!
If you can, you should always describe with :is_for, :it_is_for object methods, the response content, so it can be easy to analyze out from the poc file, or even can be used in documentation generating! With that you can make Google Api docs level documentations!
example
require 'rack'
class APP
def self.call(env)
[200, {"Content-Type" => "application/json"}, '{"msg":"Hello Rack!"}']
end
end
require 'rack/test/poc'
require 'minitest/autorun'
describe 'AppTest' do
include Rack::Test::Methods
def app
APP
end
specify 'some rack test!' do
get '/' #> at this point poc data generated for '/'
#> bla bla bla some code here
last_response.body #> '{"msg":"Hello Rack!"}'
#> you should describe a response so it can be easy to understand from the poc!
resp = JSON.parse(last_response.body)
resp['msg'].desc 'Hy'
resp['data']['key'].desc 'bye'
end
end
this will generate a yaml file with the current unix timestamp in the following format:
---
"/": #> endpoint
GET: #> endpoint method
response:
body: #> parsed response.body
msg: Hello Rack!
status: 200
format: json #> format of the response
request:
query: '' #> query string that been used