fbpx
Cómo lidiar con los Singleton en un Test

Hay veces que no nos queda más remedio que tener que lidiar con un Singleton en un Test.

Como sabrás, un Singleton, más que patrón es un antipatrón. Tiene ciertas ventajas y hay ocasiones en las que realmente tiene sentido usarlo. Pero hay muchas veces en las que simplemente tenemos un código legacy que requiere ser testeado y es ahí donde vienen los quebraderos de cabeza.

Una de las cosas que puedes hacer, es tratar de cambiar el código de producción y hacerle un refactor para que sea una class en lugar de un object y de este modo, que se cree una nueva instancia en cada test que se ejecute. Ahora… eso probablemente cambie el comportamiento de lo que estaba sucediendo hasta el momento.

Pero como sabrás, si te has leído el «Working Effectively with Legacy Code», no suele ser buena idea refactorizar algo sin al menos unos test de andamiaje, que sea un refactor que te provea tu IDE, o en última instancia, que estés completamente seguro o segura de lo que estás haciendo.

Dicho esto, como te comentaba, uno de los mayores problemas que tenemos con los Singleton en los tests, es precisamente eso: que es el mismo objeto, la misma instancia, que apunta a la misma dirección de memoria… y si no te lo crees, pon un punto de ruptura y compruébalo por ti mismo. 😄

Bromas aparte, una de las reglas esenciales de los tests es que estén aislados los unos de los otros. Por lo tanto, si en uno, se cambia una variable que se vaya a usar en otro test, al terminar, en el tearDown(), todo debería volver al estado inicial.

Qué mejor manera de ver esto, que con un sencillo proyecto de ejemplo en Android. Échale un vistazo y así podrás verlo y aplicarlo en tus pruebas:

Únete a Los androides, la comunidad Android del crecimiento profesional. 🚀

Si quieres ser un Desarrollador Android más senior, te interesa el Plan Impulso Android. 💪🏼

Ves a Revisa mi código ⌨️ para recibir feedback sobre tu proyecto Android en vídeo.

Si tienes cualquier duda técnica o profesional, agenda una Mentoría. 💡

Y seguro que conoces a alguien que le pueda interesar este artículo.

Compártelo clicando el icono de aquí abajo.

18.11.2021

Publico una divertida newsletter semanal con pepitas de oro para Desarrolladores Android

Acepto que trates mis datos con privacidad.
¡No te cortes! Escribe un comentario
Nunca jamás publicaré tu email