Mi equipo continúa encontrando más y más valor en las pruebas unitarias que escribimos. Por lo general, no probamos por unidad las capas de acceso a datos de nuestras aplicaciones, ya que no contienen "lógica". En mi experiencia, hemos tenido problemas de rendimiento y errores no reproducibles como resultado de permitir que los desarrolladores escriban pruebas unitarias que hablan con bases de datos en vivo (o servicios web) y como resultado más y más desarrolladores están creando burlas que alimentan datos a estos pruebas unitarias¿Es razonable exigir que las pruebas unitarias nunca se comuniquen con una base de datos/servicio web en vivo?
Este enfoque ha aumentado la velocidad de las pruebas y las pruebas aisladas a la lógica en lugar de probar la conexión/recuperación al mismo tiempo. Me pregunto si esto parece razonable para hacer cumplir como un estándar de codificación. ¿Cuáles son los pros/contras con respecto a la unidad de prueba de bases de datos en vivo/servicios web que me falta?
Se deben evitar los efectos secundarios en los métodos/clases tanto como sea posible, p. mediante el uso de inyección de dependencia. – Patrick