Skip to content

Guía para Agregar el Atributo data-testid a Elementos HTML

El atributo data-testid se utiliza para seleccionar elementos durante las pruebas automatizadas de una aplicación. Al añadir este atributo a los elementos relevantes, haces que tus pruebas sean más sólidas e independientes de cambios en la estructura de la aplicación.

Normalmente usamos ids en los elementos para mapear los componentes y facilitar la creación de pruebas automatizadas, pero crear pruebas basadas en etiquetas, clases o id es muy volátil y propenso a cambios (pueden cambiarse al modificar el JavaScript o CSS, por ejemplo). Por lo tanto, usar data-testid es una mejor estrategia, ya que tiene un propósito único.

Para páginas existentes, simplemente puedes asignar al data-testid el mismo valor del atributo id. Solo asegúrate de que no haya estilos o scripts JavaScript utilizando ese id si decides eliminarlo y quedarte solo con el data-testid.

Aquí tienes algunas directrices para agregar el atributo data-testid a elementos HTML:

1. Elige nombres descriptivos

Usa nombres significativos y descriptivos para el atributo data-testid. El nombre debe reflejar el propósito o comportamiento del elemento en el contexto de la prueba. Por ejemplo, si estás probando un formulario de inicio de sesión, podrías usar data-testid="login-form" en el elemento form.

2. Sé consistente

Mantén una convención de nombres consistente al añadir el atributo data-testid. Esto facilita la lectura y el mantenimiento de las pruebas, especialmente cuando varias personas trabajan en el mismo proyecto. Define pautas claras para su uso en el código del proyecto.

3. Evita detalles de implementación

Evita depender de detalles internos de la implementación al usar el atributo data-testid. No uses IDs generados automáticamente ni estructuras HTML específicas. Esto asegura que tus pruebas sigan funcionando incluso si cambia la estructura de la aplicación.

4. Prioriza elementos únicos

Siempre que sea posible, elige selectores que identifiquen elementos de forma única. Esto mejora la confiabilidad de las pruebas y reduce la posibilidad de selecciones incorrectas. Asegúrate de que cada valor data-testid sea único dentro de la página.

5. Combínalo con otros selectores

En algunos casos, puede ser necesario combinar el atributo data-testid con otros selectores como clases o identificadores HTML para crear selecciones más específicas. Esto permite seleccionar elementos con base en criterios adicionales, aumentando la precisión de las pruebas.

Para más información y buenas prácticas, consulta la documentación de Buenas Prácticas de Cypress
o la documentación de Selectores de Playwright.

Ejemplo de Uso

Aquí tienes un ejemplo de cómo agregar el atributo data-testid a un elemento HTML:

html
<button data-testid="login-button">Login</button>

Comparando selectores con y sin data-testid:

  • Sin data-testid: el elemento se selecciona por etiqueta, clase o id, lo cual no está aislado y puede comprometer la estabilidad de las pruebas a largo plazo.
  • Con data-testid: el selector es específico para pruebas, haciendo la identificación más confiable y estable.