Come esercizio di apprendimento, sto costruendo un'applicazione di pratica con Sinatra, Datamapper e RSpec. Sto usando this template, che è fondamentalmente un boilerplate per tutto quanto sopra.Separare il database di test dell'app Sinatra dal database di sviluppo?
Il problema che sto avendo è che il modo in cui RSpec e Datamapper sembrano essere configurati, ogni volta che viene eseguita una specifica che verifica la funzionalità relativa al Database, tali test modificano direttamente il mio database di sviluppo invece di un database di test.
Per esempio, vorrei creare un paio di oggetti di database prima di eseguire il resto della spec ...
before(:all) {
Region.new(:country => "Canada", :country_code => "CA").save
ProductLine.new(:reference => "Molders").save
Product.new(:name => "The Black Molder").save
Cart.new(:price => 25.95).save
}
Eppure ogni volta che corro RSpec, gli elementi di cui sopra vengono aggiunti al mio database di sviluppo.
Perché non viene generato un database di test? Come posso far funzionare correttamente il database di test?
Questo sembra abbastanza simile a this issue here, ad eccezione di Sinatra anziché di Rails.
Se c'è qualche aiuto, il mio codice può essere visto here.
Ehi, questo ha fatto il trucco! Grazie per la risposta :) –
Grazie, stavo mettendo ENV ['RACK_ENV'] = 'test'' in vari punti e mi sono sentito frustrato dal motivo per cui non lo stava raccogliendo - dopo aver letto la tua risposta l'ho messo a la parte superiore di 'spec_helper.rb' ** prima di **' richiede 'sinatra'' e ora funziona! – Shevaun
Grazie mille. Questo mi stava facendo impazzire. –