Skip to content

heyZeus/servme

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Servme

Build Status

Servme is very rough and not ready for public consumption.

If you're still reading, servme is a test library that lets you replace some server that your application depends on with an easy-to-stub Sinatra app that can be run in a thread that's subordinate to your tests.

Installation

Add this line to your Gemfile's test group:

gem 'servme'

And then execute:

$ bundle

Or install it yourself as:

$ gem install servme

Usage

In your spec helper:

Thread.new { Servme.start(:port => 12345) }
RSpec.configure do |config|
  config.include Servme::DSL
  config.after(:each) do
    Servme.reset
  end
end

Now, the following DSL is going to be entirely gutted ASAP, but for now, in your specs:

before(:each) do
  on({
    :url => "/api/login",
    :method => :post,
    :params => {
      :login => "todd",
      :password => "scotch"
    }
  }).respond_with(:token => "1234567890")
end

And POSTs to "/api/login" with login "todd" and password "scotch" will get a JSON response of {"token": "1234567890"}.

If you want to trigger a certain status code, you can do this:

before(:each) do
  on({
    :url => "/api/login",
    :method => :post,
    :params => {
      :login => "todd",
      :password => "scotch"
    }
  }).error_with(401)
end

All other requests will send back JSON including the request params with a 404 code.

About

gimme for integration tests

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%