RailsTutorial 3.2 Ch 9 - "before {valid_signin (user)}" fa fallire il test RSpec
-
28-10-2019 - |
Domanda
Sono attualmente in RailsTutorial 3.2, Sezione 9.3.1 Indice utente .
Il Listato 9.27 indirizza una modifica al codice spec/requests/authentication_pages_spec.rb
come segue:
require 'spec_helper'
describe "Authentication" do
.
.
.
describe "with valid information" do
let(:user) { FactoryGirl.create(:user) }
before { valid_signin(user) }
it { should have_selector('title', text: user.name) }
it { should have_link('Users', href: users_path) }
it { should have_link('Profile', href: user_path(user)) }
it { should have_link('Settings', href: edit_user_path(user)) }
it { should have_link('Sign out', href: signout_path) }
it { should_not have_link('Sign in', href: signin_path) }
.
.
.
end
end
end
Dopo aver fatto ciò, la sezione di test corrispondente fallisce.Ho seguito il tutorial molto fedelmente, quindi il mio codice e la configurazione sono per il resto praticamente identici.
Dopo aver testato alcune cose, ho scoperto che la modifica del
before { valid_signin(user) }
riga da leggere
before { sign_in user }
invece farà passare di nuovo tutti i test.C'è qualcosa nella riga valid_signin(user)
che è sintatticamente disattivata o questo indica un errore altrove nel mio codice?
(L'app funziona esattamente come dovrebbe, è solo il test che dice che non funziona.)
Soluzione
Se guardi il listato 8.34 vedrai il def di valid_signin nel file spec / support / utilities.rb.
Altri suggerimenti
Trovo che gran parte del lavoro "opzionale" sia necessario affinché il codice che segue funzioni.Cordiali saluti