如何根据另一个属性值存根类的所有实例的方法/属性?

时间:2015-07-15 22:03:38

标签: ruby-on-rails rspec

要么这不存在,要么我以错误的方式看待这个。

rspec中,我想存根一个类的所有实例的方法/属性,但仅当该实例遵循某个条件时才会存在,例如:

以下代码将存储具有给定注释的所有帖子:

Post.any_instance.stub(:comments).and_return([comment1, comment2])

但我只想在帖子为published时存根评论,否则我想要一个空白的comments数组。

我有什么方法可以做这样的事情:

Post.any_instance.stub(:comments) do |post|
  post.published ? [comment1,comment2] : []
end

我见过你向stubbed方法发送一个参数的解决方案,根据参数值你可以返回不同的值,但这不是这里的情况。

1 个答案:

答案 0 :(得分:0)