如何使用多个关联测试rspec ActiveRecord查询

时间:2011-09-07 21:49:03

标签: ruby-on-rails activerecord rspec mocking factory

如果传入正确的参数,我有几种方法可以查询数据库,并且我正在尝试找到测试它们的最佳方法。

此时我正在使用stub_chain,但觉得这与实现紧密相关,如果我改变搜索,它将破坏测试。 这是查询:

def query 
   self.users.active.find_by_name("john") 
end

我测试它是这样的:

client.stub_chain(:users, :active, find_by_name).and_return([mock_model("User")])
client.query.should_not be_blank

这样做,以及只调用查询而不进行存根并检查返回是数组还是空数组,但这些都不是最佳的。就像现在一样,我基本上只是测试我是否打出这个确切的电话。

1 个答案:

答案 0 :(得分:1)

如果你想解开一点,你最好抄袭query方法本身:

client.stub(:query).and_return [mock_model("User")]

否则,没关系。


如果您想测试精确的方法调用look here

,则可获得奖励