¿Cómo configurar rspec y mongoid para la prueba de gemas?

Estoy trabajando en la creación de una nueva gema que tenga algunos modelos que usen Mongoid. Me gustaría probar mi gema usando RSpec. Empecé a usar RSpec para escribir pruebas. He instalado una gema llamada mongoid-rspec y configurarlo de acuerdo con su documentación.

Ahora necesito decirle a Mongoid cómo configurarse. Ejecutando rspec desde la línea de comando, ahora me dice que no pudo encontrar un archivo mongoid.yml y que debería ejecutar rails g mongoid:config. Obviamente, esto no funcionará ya que estoy probando una gema.

Soy nuevo en rspec y mongoid, por lo que no estoy muy seguro de todo lo que debo hacer para configurarlo correctamente en este entorno de prueba. Puede ser tan fácil como crear este archivo mongoid.yml, pero no estoy seguro del mejor lugar para colocarlo.

Cualquier ayuda sería apreciada. ¡Gracias!

preguntado el 27 de julio de 12 a las 20:07

2 Respuestas

Así es como puede hacer que Mongoid funcione en el contexto de una prueba de rspec de gemas.

Configure un archivo de configuración de Mongoid en spec/config/mongoid.yml por ejemplo.

development:
  sessions:
    default:
      database: your_gem_db
      hosts:
        - localhost:27017

en tu spec/spec_helper.rb archivo que puede agregar

Mongoid.load!('./spec/config/mongoid.yml')

Encuentre más detalles sobre este problema en el Configuración de Mongoid Página de documentación

Respondido 06 Feb 14, 20:02

Simplemente agregue el siguiente fragmento a spec_helper sección de configuración:

# Clean up all collections before each spec runs.
config.before do
  Mongoid.purge!
end

Esto borrará la base de datos mongo antes de cada prueba. También puedes usar factory_girl (funciona bien con Mongoid) y muy útil mongoid-rspec joya: https://github.com/evansagge/mongoid-rspec

..y básicamente eso es todo ;)

respondido 14 mar '17, 09:03

Esta respuesta no está relacionada con la pregunta. - Quentin

Tuve algunos problemas realmente extraños (creo que la base de datos persistía de forma predeterminada), y esta respuesta (la parte de purga) realmente me ayudó, y fue la primera que apareció en Google para mí cuando intenté buscar mi problema. así que gracias. - Omar Bahareth

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.