2010-10-04 29 views
5

Necesito hacer varias pruebas de integración en una base de datos de Mongo utilizando Java, y estaba buscando una solución tipo DbUnit (DbUnit es para Hibernate) que puede llenar mi base de datos con datos personalizados y restablecer el estado después de cada ejecución.Pruebas de integración con MongoDB?

¿Algún consejo?

Gracias

+0

respondidas en detalle en esta pregunta http://stackoverflow.com/questions/6437226/embedded-mongodb-when-running-integration-tests – KPrince36

Respuesta

3

Para empezar, no conozco ningún equivalente directo a DBUnit para Mongo. Mongo sigue siendo un producto nuevo, por lo que probablemente tendrás que "hacer tu propio" para algunas de estas cosas.

Sin embargo, hay varias características de Mongo que deberían hacer esto fácil:

  1. Se ejecuta con permisos mínimos
  2. Se puede simplemente "correr" en archivos preparados
  3. En realidad, no tiene un esquema (a excepción de los índices)
  4. puede funcionar de datos JSON

sobre la base de su conjunto de datos hay un montón de maneras para hacer esto. Pero las herramientas básicas están ahí.

  • Debe poder comenzar una versión específica para su prueba, de su prueba.
  • Debería poder importar datos de "estado" del archivo JSON.
  • Debería poder aplicar cualquier función del lado del servidor desde un archivo JS (desde cero).

Por lo tanto, todo debe ser bastante sencillo. Aunque tendrás que escribir mucho sobre el código de pegamento.

+2

No se olvide, usted puede usar File.createTempFile de Java (con file.deleteOnExit) para hacer fácilmente pruebas en las tiendas mongo db. – Steven

2

Aquí es lo que hago: conecto a un conocido (a menudo compartida) Mongo ejemplo, pero crear una nueva base de datos única para cada serie de ensayos utilizando un UUID. No tiene que preocuparse por crear colecciones, ya que se crean de forma diferida cuando almacena documentos en ellas por primera vez. Cree cualquier índice que necesite en el constructor del repositorio o DAO; Las creaciones del índice mongo tienen éxito inmediatamente sin hacer ningún trabajo si el índice ya existe. Obviamente, no necesita preocuparse por las migraciones de esquemas ;-)

Este esquema requiere que usted comience desde un almacén de datos vacío, pero es un estado conocido, por lo que es bastante fácil llenarlo en la fase de configuración de sus pruebas si es necesario.

Cuando finaliza la prueba, elimine toda la base de datos en la fase de desmontaje.

0

Sé que esta pregunta es antigua, pero tal vez mi respuesta sea útil para alguien. Aquí es una util simple que he escrito recientemente: https://github.com/kirilldev/mongomery

muy sencilla para poblar db con datos de archivo JSON:

//db here is a com.mongodb.DB instance 
MongoDBTester mongoDBTester = new MongoDBTester(db); 
mongoDBTester.setDBState("predefinedTestData.json"); 

Para comprobar db Estado:

mongoDBTester.assertDBStateEquals("expectedTestData.json"); 

Es compatible con marcadores de posición para archivos esperados que pueden ser útiles en algunas situaciones.

Cuestiones relacionadas