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?

È stato utile?

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.

scroll top