Creo que se ha desperdiciado más tiempo argumentando acerca de qué es una unidad frente a qué es una prueba de integración que se ha agregado el valor.
No me importa.
Permítanme decirlo de otra manera: si lo estuviera probando, vería dos formas de hacerlo: falsifique la base de datos devolviendo cero filas, o conecte con una base de datos que no tenga datos para la selección. Probablemente comenzaría a probar con lo que sea más fácil de hacer y más simple de implementar, si se ejecutó lo suficientemente rápido como para poder obtener comentarios significativos. Entonces consideraría al otro si lo necesitara para correr más rápido o si pensé que habría alguna ventaja.
Por ejemplo, probablemente comenzaría a conectarme al DB de prueba real en mi trabajo. Pero si el software necesitaba trabajar con muchas bases de datos diferentes -Oracle, PostGres, MySQL, SQL Server y DB, o si el DB de prueba en el trabajo estaba inactivo para 'refrescar' mucho, probablemente escribiría el 'pure/unit' prueba que existió totalmente aislada.
En mi vejez, prefiero usar el término "cara del desarrollador" frente a "cara al cliente" más a menudo, y hago el tipo de prueba que tiene más sentido. Creo que usar términos como "unidad" extensamente, y luego obtener una definición-weenie acerca de ello lleva a personas que hacen cosas como burlarse del sistema de archivos o burlarse de captadores y establecedores, actividad que considero inútil.
Creo esto fuertemente; Me presenté antes de google en él.
http://www.google.com/url?sa=t&source=web&oi=video_result&ct=res&cd=1&url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DPHtEkkKXSiY&ei=9-wKSobjEpKANvHT_MEB&rct=j&q=heusser+GTAC+2007&usg=AFQjCNHOgFzsoVss50Qku1p011J4-UjhgQ
buena suerte! ¡Háganos saber cómo va!
Pensar en "pruebas unitarias" en el sentido de "sistema cerrado" es muy útil para diferenciarlo de las "pruebas de integración". – hurikhan77