En mi código, yo interactúo con una base de datos (que no forma parte de mi archivo de solución). La base de datos es propiedad de un equipo separado de DBA, y el código que los desarrolladores escriben solo puede acceder a los procesos almacenados. Sin embargo, tenemos una vista completa de los procesos, tablas y columnas de la base de datos (su definición). Para mi código que depende de los datos, actualmente escribo pruebas unitarias que modifican los datos en las tablas (y elimino esas filas después de que se realiza la prueba unitaria), de modo que puedo ejecutar pruebas unitarias para ejercitar mi código que interactúa con el DB. Todo el código para hacer esto está en el archivo de prueba (especialmente en las funciones ClassInitialize() y ClassCleanup()). Sin embargo, mis nuevos compañeros de trabajo me han dado una gran cantidad de dolor, calificando mi estilo de pruebas unitarias como "destructivo" porque leo/escribo en la base de datos dev insertando y eliminando filas. En el momento en que codificamos las pruebas unitarias, el diseño de la base de datos generalmente no es estable, por lo que muchas veces podemos encontrar problemas en el código de proceso almacenado antes de desatar el departamento de control de calidad en nuestros programas (ahorra recursos). Todos me dicen que hay una forma de clonar la base de datos en la memoria en el momento en que se ejecutan las pruebas de la unidad MSTest, sin embargo, no saben cómo hacerlo. Investigué en la web y no puedo encontrar la forma de hacer lo que mis compañeros de trabajo necesitan que haga.MSTest pruebas de unidad y acceso a la base de datos sin tocar la base de datos real
¿Puede alguien decirme con certeza si esto puede ocurrir en el entorno que mencioné anteriormente? Si es así, ¿puedes señalarme en la dirección correcta?
¿Estás diciendo "simulacro" como en un clon o espejo? Si es así, eso es lo que estamos tratando de hacer. Cree una versión en memoria de la base de datos para que el código interactúe. ¿Cómo se hace esto? – DMCS
No, digo falso como en una base de datos falsa, algo que actúa como una base de datos, pero puede establecer su comportamiento en las pruebas. –
Me costará mucho trabajo realizar una ingeniería inversa de la base de datos del DBA cada vez que quiera ejecutar las pruebas unitarias. Hay una gran cantidad de código complejo que ocurre en los procesos almacenados del DBA, así como muchas tablas y columnas para reproducir cada vez. ¿No hay una herramienta para hacer esto por nosotros en VS2010? – DMCS