Como ejercicio de aprendizaje, estoy construyendo una aplicación práctica con Sinatra, Datamapper y RSpec. Estoy usando this template, que es básicamente una repetición de todo lo anterior.Base de datos de prueba de la aplicación Sinatra separada de la base de datos de desarrollo?
El problema que tengo es que la forma en que RSpec y Datamapper parecen estar configurados, cada vez que se ejecuta una especificación que prueba la funcionalidad relacionada con la base de datos, esas pruebas cambian directamente mi base de datos de desarrollo en lugar de una base de datos de prueba.
Por ejemplo, deseo de crear unos objetos de bases de datos antes de ejecutar el resto de la especificación ...
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
}
Sin embargo, cada vez que funciono RSpec, los elementos anteriores se añaden a mi base de datos de desarrollo.
¿Por qué no se genera una base de datos de prueba? ¿Cómo puedo hacer que la base de datos de prueba funcione correctamente?
Esto parece bastante similar a this issue here, a excepción de Sinatra en lugar de Rails.
Si es de alguna ayuda, mi código se puede ver here.
¡Oye, ese fue el truco! Gracias por su respuesta :) –
Gracias, estaba poniendo 'ENV ['RACK_ENV'] = 'test'' en varios lugares y me frustré por qué no lo estaba recogiendo - después de leer su respuesta lo puse en la parte superior de 'spec_helper.rb' ** antes **' require 'sinatra'' ¡y ahora funciona! – Shevaun
Muchas gracias. Esto me estaba volviendo loco. –