2011-08-17 10 views
34

Sto testando il front-end di un'applicazione Web e voglio testare l'aspetto di alcune transizioni con vari ritardi tra le richieste AJAX. C'è un modo per aggiungere un sleep(1500) al mio controller per ritardare la risposta?Come aggiungere un ritardo al controller Rails per il test?

+1

Basta aggiungere la chiamata sleep (1000) all'azione del controller. –

+5

L'unità di default per dormire in RoR è _seconds_ !! Aggiunto il sonno 1.5 al controller e la vita è buona. Grazie :) – RSG

risposta

66

controller in questo modo:

def catalog 
    #Makes the request pause 1.5 seconds 
    sleep 1.5 

    ... 
end 

Ancora meglio: aggiungere solo il sonno per l'ambiente dev.

9

Elaborazione su risposta accettata. Se avete qualche controller di base, come il default ApplicationController che si estende da qualsiasi altro controller è possibile definire il seguente filtro:

class ApplicationController < ActionController::Base 

    # adds 1s delay only if in development env 
    before_filter if: "Rails.env.development?" do 
    sleep 1 
    end 
end 

Dove: è il numero di secondi di attesa prima di tornare qualsiasi risposta, vedi sleep docs

Questo filtro sarà attivato solo se l'applicazione è in sviluppo ambiente e si aggiungerà desiderato ritardo ad ogni richiesta elaborato dalla vostra applicazione.

Problemi correlati