2011-09-07 37 views
1

我有几种查询数据库的方法,如果传递了正确的参数,并且试图找到测试它们的最佳方法。如何测试具有多个关联的rspec ActiveRecord查询

在这一点上,我使用stub_chain's,但觉得这与实现非常接近,如果我改变了搜索,它将打破测试。 这是查询:

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

如果你想解开了一下,你最好捻熄query方法本身:

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

否则,它的罚款。


如果要测试确切的方法调用look here,则为奖励。

相关问题