Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Just enough Cucumber in RSpec.
Ruby
Branch: master
Failed to load latest commit information.
lib Add Feature to RSpec::Core::ObjectExtensions
spec Add spec task
test Revert "Remove unused files"
.document Initial commit to gherkinspec.
.gitignore Ignore tags file
.rspec
LICENSE First real commit
README.textile Tweak formatting
Rakefile Default rake task also runs tests
VERSION Bump version to 0.2.0
unencumbered.gemspec Add rspec2 dependency

README.textile

Unencumbered

You got Cucumber in my RSpec!

Write Cucumber-flavored integration tests as easily as you write your RSpec.

To Get Output Like This

Output from a rake spec:integration run:


User creates a vurl
  Scenario:  creating
    Given I am on the home page
      When I submit a valid vurl
        Then I should be on vurl stats page
        And I should see a success message
        And my vurl was successfully created

Make a Feature Like This

Put it in a spec file in the spec/integration folder. Here’s user_creates_vurl_spec.rb for example:


require File.expand_path('../../spec_helper', __FILE__)

Feature "User creates a vurl" do
  Scenario "creating" do
    Given "I am on the home page" do
      executes { visit root_path }

      When "I submit a valid vurl" do
        executes do
          fill_in "vurl_url", :with => 'http://example.com'
          click_button 'Vurlify!'
        end

        Then "I should be on the vurl stats page" do
          current_url.should == stats_url(Vurl.last.slug)
        end

        And "I should see a success message" do
          response.body.should include('Vurl was successfully created')
        end

        And "my vurl was created" do
          Vurl.last.url.should == 'http://example.com'
        end
      end
    end
  end
end

Set Up

Environment

Add this line to your config/environments/test.rb file. Make sure to use the :lib => false item. We need to require the library manually in the spec_helper.rb, since it patches RSpec.


config.gem "unencumbered", :lib => false, :version => 'x.x.x'

spec_helper.rb

Meld these lines into your existing spec/spec_helper.rb. Note the unencumbered require needs to be after your RSpec requires, since it patches RSpec.


require 'unencumbered'
require 'webrat'

Webrat.configure do |config|
  config.mode = :rails
end

Spec::Runner.configure do |config|

  [...your other config code...]

  config.include(Webrat::Matchers, :type => [:integration])
end

class ActionController::Integration::Session; include Spec::Matchers; end

spec.opts

RSpec’s nested format reads nicely. Put this line in your spec/spec.opts file.


--format nested

Copyright © 2009 Hashrocket. See LICENSE for details.

Something went wrong with that request. Please try again.