# Rack::Test requires you to return an app object from the #app method in your test case. # If you want to test one app in isolation, you just return that app, but if you want # to test the entire app stack, including middlewares, cascades etc. you need to parse # the app defined in config.ru. # # With the latest Rack version 1.1.0, you can use Rack::Builder.parse_file to return the # outer app; with older Rack versions, you'll need to do the evaling yourself, like so: # # OUTER_APP = eval("Rack::Builder.new {( " + ::File.read('config.ru') + "\n )}.to_app") OUTER_APP = Rack::Builder.parse_file('config.ru').first class TestApp < Test::Unit::TestCase include Rack::Test::Methods def app OUTER_APP end def test_root get '/' assert last_response.ok? end end