Ruby on rails 如何基于另一个属性值存根类的所有实例的方法/属性?
要么这根本不存在,要么我看错了 在Ruby on rails 如何基于另一个属性值存根类的所有实例的方法/属性?,ruby-on-rails,rspec,Ruby On Rails,Rspec,要么这根本不存在,要么我看错了 在rspec中,我想存根一个类的所有实例的方法/属性,但前提是该实例符合特定条件,例如: 以下代码将用给定的注释存根所有帖子: Post.any\u instance.stub(:comments.)和\u return([comment1,comment2]) 但是我只想在帖子发布时存根评论,否则我想要一个空白的评论数组 我有没有办法做这样的事情: Post.any_instance.stub(:comments) do |post| post.publis
rspec
中,我想存根一个类的所有实例的方法/属性,但前提是该实例符合特定条件,例如:
以下代码将用给定的注释存根所有帖子:
Post.any\u instance.stub(:comments.)和\u return([comment1,comment2])
但是我只想在帖子发布时存根评论,否则我想要一个空白的评论
数组
我有没有办法做这样的事情:
Post.any_instance.stub(:comments) do |post|
post.published ? [comment1,comment2] : []
end
我见过一些解决方案,其中您向stubbed方法发送一个参数,并根据参数值返回不同的值,但这里不是这样。您包含的代码应该可以正常工作。中记录了使用块进行存根,但现在不推荐使用它,而是支持中描述的新方法