【问题标题】:How to test rspec ActiveRecord queries with multiple assocations如何测试具有多个关联的 rspec ActiveRecord 查询
【发布时间】:2011-09-07 21:49:02
【问题描述】:

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

此时我正在使用 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

这很有效,也可以在没有存根的情况下调用查询并检查返回是数组还是空数组,但这些似乎都不是最优的。就像现在一样,我基本上只是在测试我是否做出了这个确切的调用。

【问题讨论】:

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


    【解决方案1】:

    如果你想解开一点,你最好把query方法本身存根:

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

    要不然没关系。


    如果您想测试精确的方法调用,则可以加分,look here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-05
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多