1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
gem 'minitest'
require 'minitest/autorun'
require 'rack'
require 'rack/test'
require 'rack/builder'
require 'json'
require 'rack/parser'
class ParserApp
def call(env)
request = Rack::Request.new(env)
type = { 'Content-Type' => 'text/plain' }
code, body =
case request.path
when '/' then [200, 'Hello World']
when '/post' then [200, request.params.inspect]
when '/error' then raise(StandardError, 'error!')
else
[404, 'Nothing']
end
[code, type, body]
end
end
class Minitest::Spec
include Rack::Test::Methods
def app(*middleware)
@builder = Rack::Builder.new
@builder.use(*@stack)
@builder.run ParserApp.new
@builder.to_app
end
def stack(*middleware)
@stack = middleware
end
end
|