Re: Problem with unexpected nil in assert_select

James Byrne
Fri, 10 Sep 2010 18:12:29 -0000

James Byrne wrote:

>>
>> The response.body inside the step definition contains exactly what I
>> expect:
>>
>>   <h2 class="notice"
id="authentication_request">
>>      To Proceed Please Authenticate Your Identity
>>
>>
>> What do I need to change to get this test to work in Rails-3.0.0?
>
> Is there some place that lists the valid syntax for a css selector as
> used by ActionDispatch?  I can only surmise that the argument value is
> invalid for some reason.

I removed webrat-0.7.2-beta and tried again.  This eliminated the nil
object error, so I infer that webrat caused this issue.  However, the
test still fails.  Given this html:


To Proceed Please Authenticate Your Identity

and this assert_selector statement:

  expected = "#authorization_request"
  message = ''Missing authentication_request selector''

  assert_select(expected, message)

I receive this error:

Expected at least 1 element matching "#authorization_request", found
0.
   <false> is not true. (Test::Unit::AssertionFailedError)

/home/byrnejb/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/test/unit/assertions.rb:48:in
`assert_block''

As far as I can tell from my references, #authorization_request is a
valid css selector.  So, why is this test failing in Rails-3?