Estoy creando una aplicación web que usa la base de datos para usuarios, seguridad/roles y para almacenar contenido.Pruebas unitarias en aplicaciones web que usan bases de datos
Me parece un poco desalentador comenzar en el camino de las pruebas unitarias porque tengo que asegurarme de que mi base de datos se haya inicializado correctamente para que se ejecuten mis pruebas.
¿Cuáles son las prácticas comunes para ayudar en este sentido?
es decir, mientras que el desarrollo/pruebas, podría eliminar un usuario, pero para mi prueba a suceder que el usuario tiene que estar en la base de datos, junto con sus perfiles, configuraciones de seguridad, etc.
sé que puedo crear una script de configuración, algo que Recreat los databas etc.
yo no quiero terminar gastando todo mi tiempo mantener mis pruebas y la garantía de mi base de datos está en sych
O es que el costo de las pruebas unitarias/TDD?
Mi problema con eso es que pasas tanto tiempo escribiendo y depurando y manteniendo tu capa de datos simulada como lo haces manteniendo tu capa de datos real, y sin recuperación de la inversión. –
No estoy de acuerdo, y no he tenido ese problema en la práctica. Supongo que depende del tamaño de tu capa de datos. Me gusta usar un enfoque DAO, donde tengo un DAO por objeto de dominio; las operaciones son bastante pequeñas (obtener, agregar, borrar, etc.). La mayoría de las veces puedo implementar la clase Mock en unos pocos ... –
.. minutos, simplemente creando una clase que operaciones fuera de una Lista que la persona que llama puede pasar a través del constructor. Pero tiene razón de que puede sentir que está escribiendo código solo para respaldar una prueba, pero creo que es mejor que tener que administrar una base de datos de prueba, asegurarse de que haya datos, etc. –