File: README.rdoc [rack-test-0.6.3 Documentation]

### Home Classes Methods

### Files

- MIT-LICENSE.txt
- README.rdoc

### Class Index

Quicksearch

- Rack
- Rack::Test
- Rack::Test::Error
- Rack::Test::Methods
- Rack::Test::Session
- Rack::Test::UploadedFile

No matching classes.

# Rack::Test

- Code: github.com/brynary/rack-test

## Description

Rack::Test is a small, simple testing API for Rack apps. It can be used on its own or as a reusable starting point for Web frameworks and testing libraries to build on. Most of its initial functionality is an extraction of Merb 1.0's request helpers feature.

## Features

- Maintains a cookie jar across requests

- Easily follow redirects when desired

- Set request headers to be used by all subsequent requests

- Small footprint. Approximately 200 LOC

## Examples

    require "rack/test"

    class HomepageTest < Test::Unit::TestCase
      include Rack::Test::Methods

      def app
        MyApp.new
      end

      def test_redirect_logged_in_users_to_dashboard
        authorize "bryan", "secret"
        get "/"
        follow_redirect!

        assert_equal "http://example.org/redirected", last_request.url
        assert last_response.ok?
      end

    end

If you want to test one app in isolation, you just return that app as shown above. But if you want to test the entire app stack, including middlewares, cascades etc. you need to parse the app defined in config.ru.

    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

## Install

To install the latest release as a gem:

    sudo gem install rack-test

Or via Bundler:

    gem "rack-test", require: "rack/test"

## Authors

- Maintained by Bryan Helmkamp

- Contributions from Simon Rozet, Pat Nakajima and others

- Much of the original code was extracted from Merb 1.0's request helper

## License

Copyright (c) 2008-2009 Bryan Helmkamp, Engine Yard Inc. See MIT-LICENSE.txt in this directory.

## Releasing

- Ensure History.txt is up-to-date

- Bump VERSION in lib/rack/test.rb

- thor :release

[Validate]

Generated with the Darkfish Rdoc Generator 2.