¿Cómo realizar una prueba unitaria efectiva de un DAL que usa ADO.NET y SQL Server con NUnit?

Por lo tanto, tiene un DAL en C # que usa el patrón Repository y tiene una interfaz para cada Repository. Está respaldado por ADO.NET, MS SQL Server y llamadas de procedimiento almacenado.

Esto es genial para apilar / burlarse del repositorio donde se está utilizando en otros lugares cuando se realizan pruebas unitarias, ¡y me encanta!

Sin embargo, me encantaría agregar algunas pruebas de unidad para el propio DAL. Preferiblemente usar Rhino Mocks con NUnit. Sin embargo, estoy abierto a cambiar a MoQ si se pudiera demostrar que puede hacer algo que Rhino no pueda en relación con esta pregunta.

Preferiría no hablar con ningún DB durante las Pruebas Unitarias para mantenerlas más "puras" y al mismo tiempo probar la DAL en sí. Sin embargo, si no puede realmente realizar una prueba unitaria de un DAL sin hablar con una base de datos, ¿cuáles serían las alternativas que podrían ser los reemplazos de memoria o los reemplazos basados ​​en archivos portátiles que sean compatibles con SQL Server y las mismas llamadas SqlConnection y SqlCommand?

Abierto para refactorizar el DAL si es necesario para facilitar la inyección siempre que no complique el diseño al mismo tiempo. Ya estoy utilizando Microsoft Unity, para DI con el patrón de repositorio.

Respuestas a la pregunta(1)

Su respuesta a la pregunta