Categories News

Prueba de no xcentancia – Andy Baleam Blog

6 de mayo de 2025 [Programming, Test Driven, Tech]

Probar que hay algo que no es confiable

Hoy escribí una prueba de que algo no sucedió, así:

Given that the A setting is "off"

When I start the app

Then the warning about A being on IS NOT displayed

Es bastante difícil verificar que algo no se muestra de una manera fuerte. Inicialmente no hay problema:

assert!(page.does_not_contain("Setting A should normally be turned off!"));

Pero luego, si cambiamos las advertencias de palabras, esta prueba se vuelve inútil: podemos introducir un error que aparezca las advertencias, y esta prueba aún pasará, porque está buscando el texto incorrecto.

Combinar probando que hay algo

La mejor manera que encontré para mantener esto es asegurarme de que cada “prueba de no hay allí” se combine con la prueba “está ahí” como amigo:

Given that the A setting is "on"

When I start the app

Then the warning about A being on IS displayed

Ahora, cuando cambiamos las palabras de advertencia, esta prueba positiva falla, y podemos actualizar ambas pruebas para usar nuevas palabras.

¿Entonces todo está bien?

Pero, por supuesto, algunos programadores pobres que trabajan para cambiar “generalmente” a “generalmente” en 800 archivos de código fuente pueden no pensar mucho en este par de pruebas, e interferirán con el código hasta que pasen las 10,800 pruebas y puedan perder fácilmente a su compañero.

Podrían arreglar las palabras en la prueba “está ahí”, y se lo pierden en la prueba “Ninguno”, haciéndola más inútil.

Cómo mejorar esto

Puede ser divertido construir una convención de nombres para mostrar que la prueba está emparejada, para ayudar a evitar este problema. ¿Sugerencia?

Aún mejor, ¿podemos hacer una especie de “existencia determinada por X” que combina un par de estas pruebas en una? Algo como esto:

Given that the A setting can be either "on" or "off"

When I start the app

Then the warning is controlled by A:
    "on"  = displayed
    "off" = not displayed

No me doy cuenta de que este patrón se usa en ninguna parte. ¿Cualquiera? ¿Cuál es el código en la prueba?

Game Online

Motivation

News

Pendidikan

Pendidikan

Download Anime

Gaming Hub

Game online adalah jenis permainan video yang dimainkan melalui jaringan internet. Game ini memungkinkan pemain untuk berinteraksi dengan pemain lain secara real-time, baik itu dalam bentuk kerja sama, kompetisi, atau eksplorasi dunia virtual bersama-sama.

More From Author