[rspec-users] "contain" not defined in view spec

David Chelimsky dchelimsky at gmail.com
Mon Oct 18 19:53:13 EDT 2010


On Oct 18, 2010, at 3:27 PM, Stephen Veit wrote:

> Using Rails 2 and rspec-rails 2.0.1.
> 
> I have the following view spec:
> 
> 
> require 'spec_helper'
> 
> describe "bookmarkers/show.html.haml" do
>  include BookmarkersHelper
> 
>  before(:each) do
>    @bookmarker = mock_model(Bookmarker)
>    @bookmarker.stub!(:host_id).and_return("1")
> 
>    assign(:bookmarker, @bookmarker)
> 
>    view.stub!
> (:edit_object_path).and_return(edit_bookmarker_path(@bookmarker))
>    view.stub!(:collection_path).and_return(bookmarkers_path)
>  end
> 
>  it "should render attributes in <p>" do
>    render
>    rendered.should contain("1")
>  end
> end
> 
> 
> When I run /usr/bin/ruby -S bundle exec rspec "./spec/views/
> bookmarkers/show.html.haml_spec.rb" I get:
> 
> 
> F
> 
> Failures:
>  1) bookmarkers/show.html.haml should render attributes in <p>
>     Failure/Error: rendered.should contain("1")
>     undefined method `contain' for
> #<RSpec::Core::ExampleGroup::Nested_1:0x7f6ea999e390>
>     # ./spec/views/bookmarkers/show.html.haml_spec.rb:19
> 
> Finished in 0.10042 seconds
> 1 example, 1 failure
> 
> Where can I find the definition of "contain" or "contains?"
> 
> Also here is my Gemfile:
> 
> group :development, :test do
>  gem "rspec", "~>2.0.0"
>  gem "rspec-rails", ">= 2.0.1"
> end
> 
> Thanks.
> 
> Stephen Veit

contain is a Webrat matcher (also Capybara, but Capybara matchers do not work in view specs), so you need to add that to your Gemfile:

  gem "webrat", ">= 0.7.2.beta.2"

HTH,
David





More information about the rspec-users mailing list