How to test text on rendered view?

rspec, rspec2, ruby-on-rails-3.2

Solution

In your view template do you actually have the text you are checking for? The error seems to be that it couldn't actually find the text.

Also, try using `response.should have_text`.

Problem

Here is my test: ``` require "rspec" describe HomeController do render_views it "should renders the home" do get :home response.should render_template("home") response.should include_text("Simulate Circuits Online") end end ``` but, I got: ``` 1) HomeController should renders the home Failure/Error: response.should include_text("Some text to be test ..") NoMethodError: undefined method `include_text' for #<RSpec::Core::ExampleGroup::Nested_1:0xd429a0c> # ./spec/controllers/home_controller_spec.rb:9:in `block (2 levels) in <top (required)>' # (eval):6:in `block in fork' # (eval):6:in `fork' # (eval):6:in `fork' ``` So, what's the right way to test the text rendered? EDIT If I try `response.should have_content("My text ..")` I get ``` 1) HomeController should renders the home Failure/Error: response.should have_content("My text ..") expected there to be text "My text .." in "#" # ./spec/controllers/home_controller_spec.rb:9:in `block (2 levels) in <top (required)>' ```

Original source