Do we need to make it a bit clearer on the rspec.info site that
cucumber is the way forward? The trail of blog posts etc with the up-
to-date info is probably fairly bewildering to a newbie.
On 9 Oct 2008, at 19:38, Mark Thomson wrote:
Thanks guys. I took your advice and moved to cucumber. It did turn
out to be useful in that the more verbose error reporting led me to
dive more deeply into the webrat source, eventually leading me to my
problem - which actually was essentially the same noob error I made
a few days when I failed to realize my development code had a data
migration that hadn't populated the test db.
In this case the updated form mentioned in my earlier post had
selection inputs whose options are meant to be stored in the db.
Since they weren't actually there, there were no select options in
the form.
What was puzzling initially was that an error related to selection
inputs was showing up in the fills_in call. But it turns out that
webrat looks for the named text field by searching over all the
input tags in the form. In the process of parsing the selection
inputs it was throwing up when it didn't find the option tags it was
expecting.
Mark.
David Chelimsky wrote:
On Thu, Oct 9, 2008 at 1:57 AM, Matt Wynne <[EMAIL PROTECTED]>
wrote:
On 9 Oct 2008, at 02:55, Mark Thomson wrote:
I have an RSpec story with an overall structure that looks
something like
this -
----
Given the user is on the start page
When the user clicks the 'new' button
Then the 'new record' page should be displayed
When the user fills in the form
And the user submits the form
Then the updated form should be displayed
When the user fills in the updated form
And the user submits the form
Then a conformation message should be displayed
----
In the last When step, I have a fills_in call that is failing
with the
following:
----
NoMethodError: You have a nil object when you didn't expect it!
You might
have expected an instance of ActiveRecord::Base. The error
occurred while
evaluating nil.attributes.
----
I think the ActiveRecord thing is a red herring. Poking through
the Webrat
source code, it seems like the problem is more likely a failure
to find any
input fields. But I'm not sure why. Is there anything
inappropriate with the
way I've organized the story, stringing together multiple When-Then
segments? One thing that seems curious is that I have a
completely identical
fills_in call in the When step that precedes the one that is
failing and yet
that one runs without any problem.
I think this sort of error tends to happen while a view is being
rendered,
so my guess is it's something to do with your data setup.
Sorry to bang on about this, but cucumber has much better support
for error
messages - you might want to consider making the switch before you
waste too
much time on this issue.
Matt is correct, you should definitely consider moving to cucumber,
though I don't know that cucumber will necessary help you shed any
more light on this particular issue.
Mark, with the little bit of information you've provided, my best
guess would be that the :new action is providing some instance
variable that is not being provided by the :create action in the case
where the data from "When the user fills in the form" is incorrect or
insufficient to save the model.
If that's not correct, please post the code for the steps and the
relevant controller actions.
Cheers,
David
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users