test - Configurar y usar el servidor mongodb mockup para pruebas de unidad.
mongodb seguridad (5)
Como parte de la configuración de su dispositivo de prueba, elimine la base de datos y rellénela con los datos de prueba predeterminados.
Tengo que desarrollar algunas pruebas Junit para código Java usando una tienda MongoDB. ¿Hay algún marco / biblioteca que me permita inicializar un servidor MongoDB en memoria simulado?
(La idea es probar solo el código en sí, es decir, en cualquier máquina independientemente si MongoDB está instalado y en ejecución).
¡Gracias por adelantado!
Escribí una implementación de código auxiliar MongoDB en Java: mongo-java-server (ver esta respuesta ).
Estamos trabajando en un sistema de prueba de este tipo y es bastante factible. En nuestro enfoque, nuestro marco de prueba amplía la clase de caso de prueba estándar (JUnit en nuestro caso, pero TestNG parece más capaz) que configura y desarma las distintas dependencias de base de datos con cada prueba siguiendo los siguientes pasos:
Configuración de la suite de prueba
1) Iniciar el proceso mongod (usamos ProcessBuilder, instancia de proceso de tienda)
Configuración de prueba :
2) Ejecute mongo con un archivo .js específico de prueba para generar un estado de datos inicial
Prueba
3) Ejecutar prueba
Prueba de desmontaje
4) Eliminar la base de datos
Desmontaje de la suite de pruebas
5) Detener el proceso mongod (process.destroy ())
Dado que comenzar y detener mongod es la única cosa que consume tiempo, le recomiendo encarecidamente que haga esto lo menos posible. Preferiblemente una vez para todo el conjunto de pruebas. Nuestras cosas aún no están terminadas, pero los primeros resultados son positivos. No creo que haya muchas alternativas disponibles. No hay una biblioteca simulada de Mongo disponible en el momento de la escritura y mongod no tiene un modo integrado / en memoria.
No realmente, tienes que hacer ese tipo de cosas tú mismo en tus capas de aplicación. Si usa Morphia, puede usar cualquier marco simulado con las capas de servicio que desee (ya que los objetos son solo POJOs), pero no hay nada en el nivel de db / driver que lo ayude.
Muchas personas solo usan un dev local. instancia mongodb con un conjunto de datos de prueba ya que es muy rápido. Sé de personas que cargan datos de prueba para cada prueba, como copiar una base de datos con datos falsos / de prueba.
fongo podría ser lo que estás buscando.