如何使用黄瓜测试DelayedJob?

Sea*_*ean 5 ruby webrat cucumber delayed-job

我们使用DelayedJob来运行一些长时间运行的进程,并希望使用Cucumber/Webrat进行测试.

目前,我们在Ruby线程中调用Delayed :: Job.work_off来完成后台工作,但正在寻找更强大的解决方案

对此最好的方法是什么?

谢谢.

jma*_*bia 1

我认为该方法的主要问题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...
Run Code Online (Sandbox Code Playgroud)

另一个问题是,您在 Cucumber 场景中填充了重复步骤,以便在需要时分派作业。

我当前使用的方法是在执行黄瓜场景时在后台启动delayed_job。您可以检查我在该链接中使用的黄瓜钩子。