Estoy dando mis primeros pasos con MsTest y Moq y me gustaría probar una unidad de una clase de repositorio Linq2SQL. El problema es que no quiero que las pruebas de la unidad modifiquen permanentemente mi base de datos de desarrollo.Unidad probando un repositorio LINQ2SQL
¿Cuál sería el mejor enfoque para este escenario?
- Que cada prueba de operar en mi base de datos de desarrollo de bienes, pero asegúrese de que cada prueba se limpia después de sí mismo
- crear un duplicado de mi base de datos de desarrollo y dbml para la prueba de la unidad y utilizar ese contexto lugar para que pueda borrar toda la base de datos antes de cada ejecución de prueba
- Encuentra alguna forma elaborada de burlarse del Datacontext (ten en cuenta que soy un novato total de Moq).
- ¿Algo completamente diferente? ¿Tal vez algo que automatizaría la configuración de la base de datos antes de cada prueba?
Editar: acabo aprendido que MbUnit tiene un atributo de reversión que invierte cualquier operación de base de datos a cargo de un caso de prueba. No estoy particularmente apegado a MSTest, ¿podría ser una respuesta fácil a mi problema?
Sí, es lo que hice también. Eso y creó pruebas de integración que se ejecutaban en una base de datos. Linq to Sql es bastante bueno en ese aspecto: puedes nukear y crear la base de datos directamente desde el contexto de datos. – Will