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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top