2010-10-06 7 views
5

Utilizziamo DelayedJob per eseguire alcuni dei nostri processi di lunga durata e vorremmo testare con Cucumber/Webrat.Come posso testare DelayedJob con Cetriolo?

Attualmente, stiamo chiamando ritardata :: Job.work_off in un thread Ruby per ottenere il lavoro fatto nei precedenti, ma alla ricerca di una soluzione più robusta

Qual è l'approccio migliore per questo?

Grazie.

+0

la maggior parte delle persone usa Ritardato: Job.work_off .. quale sembra essere il problema? –

+1

'Delayed :: Job.work_off' è deprecato. Usa invece Delayed :: Worker.new.work_off. – Jonathan

risposta

1

Il problema principale che vedo con l'approccio Delayed:Job.work_off consiste nel rendere esplicito negli scenari Cucumber qualcosa che appartiene al sistema interno del sistema. Mescolando due preoccupazioni è contro lo spirito di test funzionali:

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

altro problema è che si popolano gli scenari di cetriolo con fasi ripetitive per il dispacciamento di posti di lavoro in caso di necessità.

L'approccio che sto attualmente utilizzando è launching delayed_job in the background while cucumber scenarios are being executed. Puoi controllare i ganci di cetriolo che sto usando in quel link.

+0

l'implementazione del post sul blog in allegato inizia il lavoro in ritardo, ma in realtà non li esegue – siamii

+0

Il collegamento non funziona, ecco perché è necessario includere sempre un riepilogo della soluzione nella risposta. –