我是嘲笑和捣蛋的新手,但我认为我的情况是他们的使用是理想的。
在我的应用程序中,当用户保存Product
时,after_save
回调会触发创建Publication
个实例,从而导致产品数据通过API发送给某些第三方。< / p>
我有Product
的请求规范来测试我的CRUD操作。
如果我存根API方法或模拟发布模型,那么这些模拟/存根是否会在我的规范中使用,即使它们实际上是在Product
after_save
回调中调用的?我对这一点感到困惑。
的更新 的
我想我会这样做:
Publication.any_instance.stub(:publist).and_return(true)
在测试开始时这样做。这样就可以处理创建的任何实例。那是怎么回事?
答案 0 :(得分:1)
是的,存根将执行它所说的内容,并且发布类的任何实例上的publist方法将始终返回true。
而不是把它放在“顶部”,而不是做类似的事情。
context 'when there is a publist' do
Publication.any_instance.stub(:publist).and_return(true)
it 'should ...' do
...
end
end
然后,如果需要,你可以在没有存根的情况下进行测试,或者测试publist在其他上下文块中返回false的测试,并且在规范中很好并且清楚。