开发者

Anyone know why I'm getting this RSpec error? getting nil <--

def mock_category(stubs={})
  @mock_category ||= mock_model(Category, stubs).as_null_object
end

describe "GET show" do
  it "assigns the requested category as @category" do
    Category.stub(:find).with("37") { mock_category }
    get :show, :id => "37"
    assigns(:category).should be(mock_category)
  end
end

Which returns :

1) CategoriesController GET show assigns the requested category as @category
   Failure/Error: assigns(:category).should be(mock_category)
   expected Category_1002, got nil

I'm confused here, because this is a right out of the box controller that rspec set up. Why could this be failing?

My versions:

Rails 3.0.0.beta4
Ruby 1.8开发者_开发问答.7
RSpec 2.0.0.beta.10

Also tried this, same exact reproducible error with :

Rails 3.0.0
Ruby 1.8.7
RSpec 2.0.0.beta.20

The command I used to generate the specs were rails g scaffold Category

In my application.rb

config.generators do |g|
  g.template_engine :haml
  g.test_framework :rspec, :fixture => true, :views => false
end

UPDATE

This goes for any scaffolded controller by Rails 3, with RSpec2. Its guarenteed to fail. Anyone know how this is supposed to be written?


rspec-rails has a spec-suite it runs against itself that uses all the generators and runs all the generated specs and they all pass, so this should work. What versions of rspec, rails, and ruby are you using? What commands did you use to generate the Category model and CategoriesController?


The conflict comes from conflicts that occurred between Rspec Beta 10 and Rspec Beta 20, and Rails 3 Beta4, to Rails 3 release.

To solve this, I uninstalled haml, and installed haml-rails.

Then I deleted all the specs that were previously generated, and regenerated them.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜