代码之家  ›  专栏  ›  技术社区  ›  Trip

有人知道我为什么会有这个RSpec错误吗?得到零<--

  •  2
  • Trip  · 技术社区  · 15 年前
    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
    

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

    我在这里很困惑,因为这是rspec设置的一个开箱即用的控制器。为什么会失败?

    我的版本:

    Rails 3.0.0.beta4
    Ruby 1.8.7
    RSpec 2.0.0.beta.10
    

    也尝试了同样的精确再现误差:

    Rails 3.0.0
    Ruby 1.8.7
    RSpec 2.0.0.beta.20
    

    我用来生成规格的命令是 rails g scaffold Category

    在我的应用程序.rb

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

    这适用于Rails3的任何脚手架控制器,带有RSpec2。它的担保失败了。有人知道这是怎么写的吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   David Chelimsky    15 年前

    rspecrails有一个规范套件,它自己运行,它使用所有的生成器,运行所有生成的规范,它们都通过了,所以这应该可以工作。您使用的是什么版本的rspec、rails和ruby?您使用了哪些命令来生成Category model和CategoriesController?

        2
  •  0
  •   Trip    15 年前

    冲突源于Rspec Beta 10和Rspec Beta 20以及rails3beta4和rails3release之间发生的冲突。

    为了解决这个问题,我卸载了 haml ,并已安装 haml-rails .