Entonces, sabemos que no vamos a crear monolitos en nuestro código de producción cuando lo estamos escribiendo todo antes de que se integre en nuestro sistema de construcción. Así que no lo hagas cuando estés en tu entorno de pruebas.
Divide tus pruebas. ¿Cada buena presentación es un buen meme, verdad? Divide tus pruebas. Si estás probando partes modulares pequeñas, divídelas. Asegúrate de que puedas ejecutar cada prueba individualmente, al igual que lo harías si estuvieras dividiendo tu código de producción, ¿verdad? La gente dice, sí, sí, puedo dividir mi código. Sé cómo descomponer esto, ¿verdad? Dices lo mismo para las pruebas y ellos dicen, es una prueba, ¿por qué importa? Importa. De verdad, importa.
Y por eso necesitamos adoptar esta mentalidad de que, cuando estás escribiendo código, estás escribiendo código, ya sea una prueba automatizada o código de producción, ¿verdad? O cualquier cosa intermedia. El código es código. Tus estetas son ingenieros. Ellos escriben código. Tus ingenieros de software, ellos escriben código. Son exactamente lo mismo. Miran los problemas ligeramente de manera diferente, pero siguen mirando el problema. Así que es importante asegurarnos de que cuando estemos dividiendo estas cosas en partes individuales, lo hagamos de manera significativa.
Así que hemos hablado de esto, donde tenemos nuestras pruebas unitarias, nuestras pruebas de servicio, pero esa parte grande y voluminosa de la interfaz de usuario, podemos descomponerla aún más. No necesitamos una prueba de extremo a extremo completa para nuestras pruebas de interfaz de usuario. Sí, es posible que necesitemos un navegador, y es importante asegurarnos de que probamos en todos los navegadores que utilizan nuestros usuarios. Si vas a probar en Chrome, prueba en Chrome, Chromium va a reaccionar ligeramente diferente. Así que si pruebas en Chromium, no siempre obtendrás la misma experiencia final que un usuario de Edge, o un usuario de Chrome, o un usuario de Brave, o un usuario de Opera o Vivaldi, ¿verdad? Es el mismo navegador en el fondo para el motor, pero no siempre te dará el mismo resultado cuando estés moviendo las cosas debido a la forma en que lo configuran y lo envían. Lo mismo ocurre al usar WebKit. WebKit puede ser la herramienta y el motor subyacente para Safari, pero hay momentos en los que Safari actuará de manera muy diferente a WebKit, y actuará de manera muy diferente a Safari en iOS. Así que asegúrate siempre de que cuando estemos dividiendo estas cosas, las dividamos y luego probemos donde van nuestros usuarios finales. Porque de esa manera, podemos saber que hemos hecho el trabajo correcto.
Ahora, al dividir las cosas en partes ligeramente más manejables, eliminaremos la inestabilidad. Cuanto más pequeñas sean tus pruebas, menos inestables serán. Seguro que todos han intentado escribir pruebas de extremo a extremo, y muchas veces, necesitas alinear muchas cosas para que funcione. Tu base de datos necesita estar configurada, tu middleware necesita estar configurado, tu frontend necesita estar funcionando, y cada vez que haces algo, necesita poder pasar por todas estas capas y luego volver. Y como estamos hablando de JavaScript, todo es asíncrono. Así que necesitas alinear muchas cosas para que las cosas funcionen.
Comments