Si tengo Data Access Layer (nHibernate), por ejemplo, una clase llamada UserProvider y una clase Business Logic UserBl, ¿debo probar sus métodos SaveUser o GetUserById, o cualquier otro método público en la capa DA que se llama desde BL? capa. ¿Es esto una redundancia o una práctica común para hacer?¿Debo I Unit Test Data Layer Access? ¿Es esta una buena práctica y cómo hacerlo?
¿Es común probar la capa DA de la unidad, o que pertenece al dominio de prueba de integración? ¿Es mejor tener una base de datos de prueba o crear datos de base de datos durante la prueba?
Cualquier ayuda es apreciada.
Esto es muy similar a mi opinión sobre las pruebas DAL. Si hay alguna lógica allí y desea estar seguro de que funciona, escriba pruebas de unidad para ello. En general, el mejor uso de su tiempo y esfuerzo puede ser la configuración de pruebas de integración en una base de datos real con datos de prueba conocidos. –
Y SQL no contiene lógica? –
@Pascal - bueno, mi SQL generalmente no, no, pero no digo que no deba probar eso. Pero no lo probaría como parte del DAL, sino que sería un conjunto separado de pruebas unitarias (probablemente usando una herramienta diferente, tal vez DBFit) o parte de las pruebas de integración. Como dije, no creo que las pruebas de la unidad de "código" toquen la base de datos debido a la complejidad de la configuración, los problemas ambientales potenciales (necesita DB local o red) y la reducción de velocidad. –