我在Rails应用程序上进行合作,其中测试套件充满了这种声明:
before do
expect(job_post).to receive(:destroy).and_return(true)
delete :destroy, params_id
end
(测试套件是绿色的)
现在,在expect
块中使用before
对我来说没有意义。我找不到关于这个主题的任何文件。
甚至更奇怪的是,它似乎充当了一种存根。如果我将其删除,则测试失败。
有人已经回复了重构测试。 虽然赞赏(谢谢),但这并没有回答我的问题。事实上,我知道如何编写控制器规范,最终我会完全重写这个测试文件。
我的问题是:
expect
的使用情况?在哪里?答案 0 :(得分:2)
是的,它没有意义。如果他们想要模拟job_post接收的东西,他们应该使用存根来完成它,而不是实际对对象进行操作。然后他们出于什么原因delete
呢?
它不是免费的,但是作为指针,我会去Destroy All Software。关于那里的测试,有很多很酷的事情。我最近也看了The Magic Tricks of Testing,它对整个测试事项的帮助很大。