如果传入正确的参数,我有几种方法可以查询数据库,并且我正在尝试找到测试它们的最佳方法。
此时我正在使用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
这样做,以及只调用查询而不进行存根并检查返回是数组还是空数组,但这些都不是最佳的。就像现在一样,我基本上只是测试我是否打出这个确切的电话。
答案 0 :(得分:1)
如果你想解开一点,你最好抄袭query
方法本身:
client.stub(:query).and_return [mock_model("User")]
否则,没关系。
如果您想测试精确的方法调用look here。
,则可获得奖励