Realmente, la mejor manera es no hacer que las pruebas unitarias se comuniquen con una base de datos real.
Burlarse de eso. Por ejemplo, MongoDB tiene una interfaz simulada en Node. [1] Lo más probable es que lo haga.
O refactorizar para que el código que está probando no acceda a la base de datos.
- ¿Zend Server hace que su sitio web PHP sea más rápido?
- ¿Despegará el cifrado de disco completo basado en hardware?
- ¿La gestión de la configuración funciona para más de 500 servidores únicos?
- Servidores: ¿Cómo construyo un 'back-end'?
- ¿Qué debo hacer para prohibir los inicios de sesión no autorizados si se piratea mi servidor de base de datos?
Idealmente, no desea que sus pruebas verifiquen que la base de datos funciona como se espera, ¿verdad? Para eso es su suite de pruebas.
Si está creando pruebas funcionales de aspectos más complejos de su aplicación, puede crear nombres de bases de datos personalizados para cada prueba, como se sugirió en otra parte. Pero aún mejor sería escribir pruebas que simplemente no interactúen directamente: si cada prueba se refiere a usuarios y productos distintos, por ejemplo, entonces no deberían interferir entre sí.
Si lo hacen, entonces tienes problemas más profundos.
Notas al pie
[1] mongo-mock