Movámonos a la pregunta, ya tenemos algunas en Discord, Sev estaba saludando y preguntando si tienes una opinión sobre el principio dry, no repetirte versus usar frases descriptivas y significativas cuando se trata de pruebas end-to-end. En otras palabras, si usas un fragmento de código en varias pruebas, ¿simplemente lo copiarías y pegarías para mantenerlo simple o crearías un comando personalizado para ello? Me encanta esta pregunta, porque es una lucha que yo mismo siento mucho, porque como desarrollador, por supuesto, me gusta decidir a favor del principio dry, para no repetirme demasiado. Pero como dije, como tester y también como desarrollador, tener pruebas comprensibles es lo más importante. A veces diría que no le des demasiado peso al principio dry y más a entender tus pruebas. Creo que si uso un fragmento de código en varias pruebas y no es un fragmento de código grande, usaría un comando personalizado, pero haría todo lo posible para nombrarlo de una manera realmente descriptiva y usar alguna documentación, por ejemplo, definiciones para autocompletar y cosas así, que se considera duplicado, pero creo que es realmente importante en este caso, para que todas las personas que vean este comando personalizado sepan de inmediato de qué se trata y qué hace. Así que puedes tenerlo comprensible y tener algo de dryness dentro de tus pruebas. Creo que es lo mejor en el medio, pero sé que es realmente, realmente difícil decidir a favor de uno u otro. De hecho, es difícil estar en el medio, pero a veces es el buen lugar para usarlo.
Liaz se preguntaba cómo obligar a los desarrolladores frontend a usar selectores. Creo que te refieres a usar selectores en lugar de cadenas o cualquier otra cosa, así que cuando se trata de selectores, es realmente importante distinguir qué selector usas. Cuando se trata de selectores CSS, preferiría usar cadenas o esperar a cualquier texto que el usuario vería en tu aplicación, porque los selectores CSS son propensos a cambios. Y esto podría ser algo que te dé algunas pruebas fallidas, incluso si no hay nada roto dentro de tu aplicación. Pero si estás usando otros selectores, como por ejemplo, atributos de datos, de los cuales soy un gran fanático, puedes hacer que sepan que no necesitarán actualizar sus pruebas tanto, porque cuando se trata de atributos de datos, y especialmente si los nombras como atributos de datos CY para Cypress, o cualquier otra frase descriptiva, un desarrollador que trabaje en tu código sabe que está destinado a pruebas y no lo cambiará. Entonces tus pruebas fallarán por las razones correctas y no solo por una clase desactualizada o algo así, lo cual es menos trabajo para el desarrollador, ¿verdad? Creo que ese podría ser un argumento maravilloso para convencerlos. Definitivamente, podemos ganarlos de nuestro lado con eso, en efecto.
Martine, oh dios mío, está vivo, preguntaba cómo compararías arrange, act, assert, lo siento, arrange, act, assert con given, when, then, y cuál de ellos usarías en qué situación. ¿Has encontrado alguna trampa con esto? Bueno, estoy muy contento de que hagas esta pregunta, Martine, porque eso fue lo que necesitaba dejar fuera de mi presentación debido al tiempo. Escribí un artículo al respecto, que algunas pruebas en mi trabajo diario, estoy trabajando en una aplicación enorme en el sector de comercio electrónico, que tiende a ser bastante conflictiva. E incluso en las pruebas unitarias, a veces se necesita un poco más de contexto en la prueba de lo que deberías tener cuando se trata de pruebas unitarias. Entonces, para empezar, no deberías llamarlas pruebas unitarias, pero cuando se trata de pruebas de integración en Jest o algo así, a veces necesitas probar el DOM, lo que a veces requiere que verifiques los estados antes y después de tu componente, por ejemplo. Y en este caso, arrange act assert no es algo bueno para usar, porque básicamente es realmente difícil encajar tus pruebas dentro de la estructura en este caso. Incluso given, when, then es más adecuado en este caso cuando se trata de pruebas de integración o si necesitas algunas sesiones en el estado antes y después. Así que puedes considerarlo de esa manera. Arrange en mis pruebas, creo que es lo que estoy dando. Así que todo lo que necesitas organizar es la parte dada. Act en mis pruebas. Creo que eso es cuando sucede algo.
Comments