Tutorial Rails - Ch. 8 - argomentazione nei test RSPEC con la linea "prima"
-
12-11-2019 - |
Domanda
Sto seguendo il tutorial dei Rails di Michael Hartl e sto ricevendo un errore inaspettato/non riuscito nella Sezione 8.2.6 Firming Out - http://ruby.railstturial.org/chapters/sign-in-sign-out?version=3.2#sec:signing_out
Il codice che ho usato per i miei test RSPEC che non riesce a essere trovato nell'elenco 8.28. Il seguente codice:
before { click_link "Sign out", method: :delete }
sta dando il seguente errore:
ArgumentError: wrong number of arguments (2 for 1)
# (eval):2:in 'click_link'
# ./spec/requests/authentication_pages_spec.rb:35:in 'block (5 levels) in <top (required)>
Ho confermato che il mio codice è esattamente come mostrato nell'esempio nel tutorial di Hartl, ma sto ancora ottenendo un test di fallimento. Pensieri?
Soluzione
Il Capybara metodo click_link
prende solo un singolo parametro, che è il nome del link che si desidera attivare. Quindi penso che il codice dovrebbe davvero essere solo:
before { click_link "Sign Out" }
Il resto del codice che avevi assomiglia alla fine dell'azione Sign_out nella vista:
<%= link_to "Sign out", signout_path, method: => :delete %>
Usando Capybara per fare clic sul collegamento, dovrebbe già utilizzare il codice sopra all'interno della vista, quindi l'ultima spazzatura sembra una duplicazione.
Rimuoverei il "Metodo :: Elimina" e vedevo cosa ottieni.