我想知道如何在 rspec 中测试 find_each 调用。我习惯于简单地 stub 我希望我的模型返回的内容,因此我不会像这样依赖数据库中的测试数据:
MyClass.stub(:find).and_return(my_mock)
但是,在另一个类中,我正在这样做:
MyClass.find_each do |instance_of_my_class|
do_stuff_here_on(instance_of_my_class)
end
我发现如果我这样做:
MyClass.stub(:find_each).and_return([one_mock, two_mock])
在规范测试中,未执行“在此处执行操作”部分。有谁知道如何为 rspec 测试 stub find_each?
最佳答案
您可以使用 and_yield 使 rspec 调用传递给模拟的块:
MyClass.stub(:find_each).and_yield(one_mock).and_yield(two_mock)
关于ruby-on-rails - 如何在 rails 3 中 stub find_each 进行 rspec 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382685/