[rspec-users] Error Testing a view in RSpec 2

David Chelimsky dchelimsky at gmail.com
Tue Oct 12 21:08:04 EDT 2010


On Oct 12, 2010, at 7:57 PM, Rafael Felix wrote:
> On Oct 12, 9:37 pm, David Chelimsky <dchelim... at gmail.com> wrote:
>> On Oct 12, 2010, at 7:33 PM, Rafael Felix wrote:
>> 
>>> On Oct 12, 9:24 pm, David Chelimsky <dchelim... at gmail.com> wrote:
>>>> On Oct 12, 2010, at 6:38 PM, Rafael Felix wrote:
>> 
>>>>> Well, I'be looking for test my views with rspec, looking the
>>>>> documentation athttp://rspec.info/rails/writing/views.htmlwesee
>>>>> some examples, in RSpec 2 the response was deprecated and now I'm
>>>>> using the rendered instead, but this code
>> 
>>>>> describe "tags/search.html.erb" do
>>>>>  it "should be have an p when no company for the tag was found" do
>>>>>    assigns[:name] = "Teste"
>>>>>    render
>>>>>    rendered.should have_tag('h4', "Visualizando empresas pela Tag
>>>>> Teste")
>>>>>  end
>>>>> end
>> 
>>>>> and I get :
>> 
>>>>> Failures:
>>>>>  1) tags/search.html.erb should be have an p when no company for the
>>>>> tag was found
>>>>>     Failure/Error: rendered.should have_tag('h4', "Visualizando
>>>>> empresas pela Tag Teste")
>>>>>     undefined method `has_tag?' for #<String:0x7f45cc59a880>
>>>>>     # ./spec/views/tags/search.html.erb_spec.rb:9
>> 
>>>>> I don't know what method we use to check my views?
>> 
>>>> If you're using webrat, use have_selector or have_xpath. Otherwise, use Rails' assert_select.
>> 
>> Please post inline or at the bottom. It makes it easier to follow the conversation. I moved your post to the bottom:
>> 
>>> Changing my test, for user assert_select, an new error is raised
>> 
>>> it "should be have an p when no company for the tag was found" do
>>>    assigns[:name] = "Teste"
>>>    render
>>>    rendered.should assert_select('h4', "Visualizando empresas pela
>>> Tag")
>> 
>> assert_select is a Rails assertion that works by itself, not an RSpec matcher. Use it like this:
>> 
>> assert_select('h4', "Visualizando empresas pela Tag")

I had to move your post again. Please post inline or at the bottom.

> Woah, now works the test, thanks for response. Why the have_tag has
> removed from RSpec 2?

have_tag wrapped assert_select in a way that was very brittle. Also Webrat and Capybara matchers are better :)

Cheers,
David


>>>  end
>> 
>>> And the error:
>> 
>>> Failures:
>>>  1) tags/search.html.erb should be have an p when no company for the
>>> tag was found
>>>     Failure/Error: rendered.should assert_select('h4', "Visualizando
>>> empresas pela Tag")
>>>     undefined method `matches?' for #<Array:0x7f41afa22388>
>>>     # ./spec/views/tags/search.html.erb_spec.rb:7
>> 
>>> thanks for response
>> 




More information about the rspec-users mailing list