Rspec 2'should_receive'不适用于Mongoid :: Document类

时间:2011-03-31 18:00:53

标签: ruby-on-rails rspec mongoid

在尝试断言我的控制器代码调用Mongoid :: Document类中的方法时,我遇到了一些问题:

require 'spec_helper' 

describe AController do

  describe 'GET index' do
    it 'returns the full list' do
      get :index
      Model.should_receive(:find).with(:all)
      response.code.should eq ("200")      
    end
  end

end

查看test.log,我可以看到正在对数据库执行的查询。但是,测试失败,rspec抱怨Model.find(:all)预计一次,但收到0次。任何人都知道这里发生了什么?在我看来,Rspec不能存储包含Mongoid :: Document的类。

谢谢!

1 个答案:

答案 0 :(得分:4)

对不起,我搞砸了,期望应该在获得之前设定

正确的方式:

  Model.should_receive(:find).with(:all)
  get :index      
  response.code.should eq ("200")