[rspec-users] Is this a bug?

Richard Lloyd richard.t.lloyd at gmail.com
Wed Nov 12 00:22:47 EST 2008


I'm new to rspec and, of course, my first time out and I'm tripped up by
what appears to me to be a bug.

A simple demonstration:

script/generate rspec_scaffold GoodDocument title:string body:text

>From spec/views/good_documents/edit.html.erb_spec.rb:

  before(:each) do
    assigns[:good_document] = @good_document = stub_model(GoodDocument,
      :new_record? => false,
      :title => "value for title",
      :body => "value for body"
    )
  end


script/generate rspec_scaffold BadDocument some_id:integer title:string
body:text someother_id:integer

>From spec/views/bad_documents/edit.html.erb_spec.rb:

  before(:each) do
    assigns[:bad_document] = @bad_document = stub_model(BadDocument,
      :new_record? => false,
      :title => "value for title",
      :body => "value for body",
    )
  end

Notice how bad_documents/edit...'s stub_model is missing both the
*:..._id*fields and how the
*:body* field line is comma terminated.  After chasing down the comma (which
caused rspec test to fail with a syntax error) I found that using *
:..._identifier* will also trigger the problem.  This only appears in the
spec/views, spec/models have all attributes included in the *
@valid_attributes* hash.

So I think there are two problems here:

1) field name which includes some undefined magic will be silently untested
in the generated view specs
2) same name if it occupies the last slot in the record will cause the test
to fail due to spec format

Rick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20081111/20eabf1f/attachment-0001.html>


More information about the rspec-users mailing list