我们使用 DelayedJob 来运行我们的一些长期运行的进程,并希望使用 Cucumber/Webrat 进行测试。
目前,我们在 Ruby 线程中调用 Delayed::Job.work_off 以在后台完成工作,但正在寻找更强大的解决方案
最好的方法是什么?
谢谢。
我们使用 DelayedJob 来运行我们的一些长期运行的进程,并希望使用 Cucumber/Webrat 进行测试。
目前,我们在 Ruby 线程中调用 Delayed::Job.work_off 以在后台完成工作,但正在寻找更强大的解决方案
最好的方法是什么?
谢谢。
我看到该Delayed:Job.work_off
方法的主要问题是您在 Cucumber 场景中明确表示属于您系统内部的东西。混合这两个关注点是违背功能测试的精神的:
When I click some link # Some operation is launched in the background
And Jobs are dispatched # Delayed:Job.work_off invoked here
Then I should see the results...
另一个问题是,您在 Cucumber 场景中填充了重复的步骤,以便在需要时分派作业。
我目前使用的方法是在执行黄瓜场景时在后台启动延迟作业。您可以查看我在该链接中使用的 Cucumber hooks。