Webmachine::Test
WARNING
This library is still under development and incomplete!
It will be merged into webmachine-ruby when it's ready.
Description
Webmachine::Test provides a testing API for webmachine-ruby inspired by rack-test.
Example Usage
Application
require 'webmachine'
class MyResource < Webmachine::Resource
def content_types_provided
[['text/plain', :to_text]]
end
def to_text
'OK'
end
end
MyApp = Webmachine::Application.new do |app|
app.add_route(['*'], MyResource)
end
# decouple runner from application so that adapter
# does not start and block test thread
#
# MyApp.run
Test with Test::Unit
class MyAppTest < Test::Unit::TestCase
include Webmachine::Test
def test_get_root_succeeds
get '/'
assert_equal 200, response.code
end
def test_get_root_replies_with_string_ok
get '/'
assert_equal 'OK', response.body
end
def test_get_root_replies_with_content_type_of_text_plain
get '/'
assert_equal 'text/plain', response.headers['Content-Type']
end
def app
MyApp
end
end
Test with RSpec
require 'webmachine/test'
require 'myapp'
describe MyApp do
include Webmachine::Test
let(:app) { MyApp }
describe 'GET /' do
it 'succeeds' do
get '/'
response.code.should == 200
end
it 'replies with the string OK' do
get '/'
response.body.should == 'OK'
end
it 'replies with a content type of text/plain' do
get '/'
response.headers['Content-Type'].should == 'text/plain'
end
end
end