Cetriolo e Liquidazione: current_user in passi
-
26-09-2019 - |
Domanda
Quello che quello di realizzare è quello di utilizzare (affidamento su) Metodo current_user
mentre la definizione di misure di cetriolo. Sto utilizzando Liquidazione nel mio progetto.
Prima di tutto ho cercato di usare sign_in
, ma non ha funzionato (credo cetriolo mondo non conosce sui metodi di Liquidazione ...).
Quindi, come faccio a fare Cuckes riconoscono current_user
e sign_in
/ metodi sign_out
?
Soluzione
I tuoi caratteristiche cetriolo dovrebbe essere di guida l'applicazione tramite l'interfaccia utente pubblico. Qualcosa di simile:
Given /^I am signed in as "([^\"]*)"%/ do |username|
visit 'sign_in'
fill_in 'Username', :with => username
click 'Sign In'
end
Dato che il metodo current_user
non è disponibile per il browser, non si dovrebbe essere di utilizzare con la spec.
Si potrebbe fingere nelle fasi di memorizzazione @current_user
nel passaggio precedente e quindi fornire un lettore di attributo per esso.
Altri suggerimenti
Non sono d'accordo con l'idea che tutti i test di accettazione (cetriolo o altro) deve esercitare la logica di accesso. Fortunatamente, se siete d'accordo, Clearance ha aggiunto una href="http://robots.thoughtbot.com/faster-tests-sign-in-through-the-back-door" rel="nofollow"> porta sul retro nei test che permette di saltare il segno in passi.
user = create(:user)
visit posts_path(as: user)
Ora è possibile lasciare le vostre caratteristiche d'accesso relative alla guida l'interfaccia utente di login come utente sarebbe e saltare che per caratteristiche che non sono direttamente collegati al login.