¿Cuál sería la configuración de mejores prácticas para ejecutar pruebas que implicaran alguna integración de una API de NodeJS y una base de datos?
Además de las pruebas unitarias, sería genial si pudiera sembrar la base de datos con algunos datos ficticios y probar varios comportamientos en estos datos.
En estos casos, ¿es mejor tener una base de datos de prueba con el único propósito de realizar pruebas? Por ejemplo, en AWS habría una instancia de RDS siempre activa, a la que apuntarían las herramientas de CI y para la que tendrían permisos.
Lo que tiendo a hacer aquí es crear objetos fijos que representen objetos comunes que usaría para probar. Por lo tanto, un modelo de automóvil podría tener un objeto fijo de Camero, que luego instalo en mis pruebas unitarias para hacer algo con él.
Lea esto como: Creo cualquier objeto con el que necesito probar en las pruebas unitarias, luego me aseguro de eliminar los datos después de mi prueba. No relleno previamente la base de datos con objetos de prueba, porque es posible que desee crear una cámara roja o un Camero con tres ruedas Camero para alguna prueba que estoy haciendo.
Para las aplicaciones MEAN en el pasado, he tenido buena suerte con FactoryLady . Afirma que solo asume que existe un método de "guardar" en sus objetos, por lo que debería poder usarse con algún ORM de SQL que esté usando.