Ogni volta che eseguo un test utente, RSpec lascia l'utente fabbricato nel database di test dopo che il test è stato completato, il che sta rovinando i miei altri test. Farò un rake db:test:prepare
, ma quando eseguo nuovamente i miei test, il record viene ricreato nel mio database. Non ho idea del perché stia succedendo. Succede solo con oggetti utente.RSpec lascia il record nel database di test
Nel mio file spec_helper ho anche:
config.use_transactional_fixtures = true
Ecco un test di esempio che crea un record:
it "creates a password reset token for the user" do
alice = Fabricate(:user)
post :create, email: alice.email
expect(assigns(alice.password_reset_token)).to_not eq(nil)
end
Serramentista:
Fabricator(:user) do
email { Faker::Internet.email }
password 'password'
name { Faker::Name.name }
end
Questo potrebbe avere qualcosa a che fare con il mio modello di utenti?
Molto vecchio post lo so, ma attualmente sto avendo problemi con i dati di essere cancellati dal mio database (un progetto di eredità che ho preso. Per essere chiari stai dicendo che qualcosa dentro, "prima: tutto fa ... fine" non è transazionale? Perché dovrebbe essere così e oggi mi sono grattato la testa per un giorno, la documentazione è molto limitata su questo.per esempio, questo codice include 'before: all do User.delete_all end'. Modifica: Ok appena trovato, questo (https://relishapp.com/rspec/rspec-rails/docs/transactions). wow, il tempo di refactoring molto codice ... al fine di ottenere il mio compito originale fatto grrr! – wired00