webapi unit test net framework asp apicontroller unit-testing entity-framework mocking data-access-layer

unit-testing - net - unit test webapi



¿Cómo probar correctamente mi DAL? (3)

Soy nuevo en pruebas unitarias. Pero, ¿cómo pruebo unitario mi DAL que está escrito con Entity Framework, así puedo asegurarme de que mi código DAL funciona correctamente pero no se toca realmente ninguna base de datos? ¿Podría alguien dar tantos detalles como sea posible, por favor?


Cuando pruebo la unidad de mi DAL, utilizo transacciones y retrotracción al final de la prueba unitaria, por lo que el db está limpio.


Si quiere probar que su capa de acceso a datos funciona correctamente, realmente necesita probarla contra una base de datos en algún momento, ya que de lo contrario no está realmente probando que funciona.


La prueba unitaria de DAL es un dolor de cabeza muy común en el desarrollo. En su mayor parte, sugiero que se lo salte.

La mayoría de los ORM en estos días ofrecen algún tipo de lenguaje de consulta, ya sea LINQ o HQL, o algún otro sabor. Debido a que una prueba unitaria adecuada requiere que no golpees la base de datos, tienes que burlarte del ORM y hacerlo es el mayor dolor en el culo que puedes pensar. No vale la pena, IMO. En última instancia, solo terminas probando que escribiste la consulta correcta en tu código; no obtiene ningún valor de regresión y puede servir mejor a sus propósitos mediante la inspección del código.

Sin embargo, no estoy diciendo que no debas probar tu uso del DAL; simplemente no pruebes las pruebas unitarias. Aún debe tener un conjunto de pruebas de integración y aceptación del usuario para su programa / sistema; permita que aquellos manejen las pruebas de acceso a sus datos en su lugar.