0

不幸的是,我没有具体的问题(或线索),但希望有人能指出我正确的方向。

当我运行所有测试(rspec 规范)时,我得到了两个与延迟作业特别相关的失败测试。

当我单独运行这个规范文件(rspec ./spec/controllers/xxx_controller_spec.rb)时,所有测试都通过了......这是一个常见问题吗?我应该寻找什么?

谢谢!

4

1 回答 1

2

您已经提到它:隔离可能是解决方案。通常我会猜测您在数据库中有些东西正在被更改并且没有正确清理(或者更确切地说,没有正确模拟)。

在这种情况下,虽然我会建议,因为系统的工作量很大,延迟的作业没有足够快地完成。挑战在于应该测试的所有异步任务:您不能让系统运行延迟的作业,而是模拟调用并确保已收到延迟的作业。

可悲的是,没有例子,我很难指出丢失的模拟。但是要确保所有对 delay_jobs 和类似的调用都接收到正确的数据,但不要实际创建和运行这些作业——你的规范也会更快。确保隔离被测函数并且不调用外部依赖项。

于 2012-05-20T09:17:37.587 回答