Supongamos que se requiere una compilación innecesariamente complicada, difícil de simular (quizás tiene clases concretas sin interfaz virtual) y una biblioteca de terceros no confiable que se integra con algún recurso externo como un socket o una base de datos. Decide crear interfaces/clases de "envoltura" para simplificar en gran medida el uso de esta biblioteca y para permitir que los desarrolladores que usen el contenedor continúen escribiendo código comprobable. La interfaz del contenedor no se parece en nada a la interfaz original.Prueba de envoltorios inteligentes para bibliotecas de terceros
Tengo algunas preguntas sobre cómo probar esta envoltura.
caso de que la envoltura se va a ensayar sin el recurso externo mediante el desarrollo de una capa de método para la método sobre el mal biblioteca que puede ser burlado?
Cuando prueba sus clases contenedoras con la biblioteca de terceros (utilizando los recursos externos) ¿es esta una prueba unitaria o una prueba de integración? Si el recurso externo puede incorporarse en la memoria durante la prueba automatizada, ¿sigue siendo una prueba de integración?
En que punto dejamos de burlarse y decir que tenemos una unidad. Según la wikipedia "Una unidad es la parte más pequeña comprobable de una aplicación". pero estoy encontrando esto difícil de medir. Si la velocidad es un factor que determina si estamos o no probando una unidad, ¿cómo decide qué tan lento es demasiado lento para que la prueba se llame prueba unitaria?
1 supongo que si la envoltura/fachada termina siendo más que la delegación de métodos, podría ser lo suficientemente complejo como para justificar el tiempo para crear un contenedor "tonto" 1: 1 para aislar la lógica. Muy buen punto. – insipid