¿Por qué los singletons son difíciles de probar?

Tabla de contenido:

¿Por qué los singletons son difíciles de probar?
¿Por qué los singletons son difíciles de probar?

Video: ¿Por qué los singletons son difíciles de probar?

Video: ¿Por qué los singletons son difíciles de probar?
Video: ▷ PATRÓN SINGLETON | Aprende qué es y cómo se utiliza 👨‍💻 este Patrón de diseño 2024, Noviembre
Anonim

La razón por la que es difícil probar una clase singleton es que no puede inicializar la clase para cada prueba otra vez, porque solo se puede inicializar una vez (y por lo tanto le da mucho trabajo establecer todos los valores correctamente para cada prueba).

¿Por qué es difícil probar singleton?

Es difícil probar el código que usa singletons.

No puede controlar la creación del objeto singleton porque a menudo se crea en un inicializador estático o en un método estático. Como resultado, tampoco puede simular el comportamiento de esa instancia de Singleton.

¿Cuál es el problema con los singleton?

Singletons dificultan las pruebas unitarias: Un Singleton podría causar problemas para escribir código comprobable si el objeto y los métodos asociados con él están tan estrechamente acoplados que resulta imposible probar sin escribir una clase completamente funcional dedicada a Singleton.

¿Cuáles son las desventajas de singleton en las pruebas unitarias?

Para ejecutar código que contiene singletons en un arnés de prueba, tenemos que relajar la propiedad singleton. Así es como lo hacemos. El primer paso es agregar un nuevo método estático a la clase singleton. El método nos permite reemplazar la instancia estática en el singleton.

¿Por qué interfiere singleton con las pruebas unitarias?

En las pruebas unitarias, cada una de las pruebas unitarias debe ser independiente entre sí. Otra razón por la cual el patrón de diseño Singleton dificulta su vida en las pruebas unitarias es porque permanecen en la memoria hasta que la aplicación está viva Por lo tanto, persisten en el estado mientras la aplicación permanezca en el memoria.

Recomendado: