2010-10-06 16 views
5

Wir verwenden DelayedJob, um einige unserer lang laufenden Prozesse auszuführen und möchten mit Gurke/Webrat testen.Wie kann ich DelayedJob mit Gurke testen?

Derzeit rufen wir Verzögerte :: Job.work_off in einem Ruby-Thread zu bekommen Arbeit im Hintergrund getan, aber sind für eine robustere Lösung

Was ist der beste Ansatz für diese?

Danke.

+0

die meisten Menschen verwenden Verzögerte: Job.work_off .. was scheint das Problem zu sein? –

+1

'Verzögert :: Job.work_off' ist veraltet. Verwenden Sie stattdessen "Delayed :: Worker.new.work_off". – Jonathan

Antwort

1

Das Hauptproblem, das ich mit der Delayed:Job.work_off Annäherung sehe, ist, dass Sie in Ihren Gurkenszenarien etwas explizit machen, das zu den Internals Ihres Systems gehört. beide Anliegen Mischen ist gegen den Geist der Funktionsprüfung:

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... 

Ein weiteres Problem, dass Sie Ihre Jobs Cucumber Szenarien mit sich wiederholenden Schritte für den Versand bei Bedarf füllen ist.

Der Ansatz, den ich derzeit verwende, ist launching delayed_job in the background while cucumber scenarios are being executed. Sie können die Gurkenhaken überprüfen, die ich in diesem Link verwende.

+0

Die beigefügte Blogpost-Implementierung startet einen verzögerten Job, führt sie aber nicht aus – siamii

+0

Der Link ist tot, deshalb sollten Sie immer eine Zusammenfassung der Lösung in Ihre Antwort aufnehmen. –