¿Vale la pena probar placeholders en React con Jest y React Testing Library?

Publicado: Hace 9 días

Los placeholders son textos de utilidad que sirven como guía para describir campos que, a simple vista, podrían no ser tan fáciles de comprender para el usuario final. Por ejemplo, un campo de correo podría llevar como placeholder: "Ingresa tu correo electrónico".

En muchos casos, los placeholders no parecen tan relevantes de probar, ya que detrás suelen existir validaciones (tipo de dato, formato, requeridos, etc.) que guían al usuario. Sin embargo, si desde un inicio reducimos que sobrepiense, mostrándole un texto claro, su experiencia dentro de la aplicación mejora significativamente.

¿Vale la pena validarlo en pruebas?

La respuesta corta es: sí, pero con una condición.
 Los placeholders merecen ser probados cuando están vinculados a lógica de negocio. Es decir, cuando no son simplemente un texto estático, sino que cambian de acuerdo con alguna condición o regla definida en el sistema.


Veamos un caso práctico.


Contexto del negocio: Duolingo y el registro de usuarios

En el flujo de registro de Duolingo se solicitan cuatro campos:

  • Edad
  • Nombre (opcional)
  • Correo
  • Contraseña

Si un usuario ingresa una edad menor a 13 años, por ejemplo, 12, los placeholders de nombre y correo cambian.


REFERENCIA: Cómo probar componentes en React con Jest y React Testing Library: Guía paso a paso con el registro de usuarios de Duolingo 


En este escenario aparece un detalle importante: los placeholders dependen de la edad ingresada, y eso los convierte en un buen candidato para probarlos, ya que tienen lógica de negocio.


Ejemplo práctico: placeholders en el registro de Duolingo

. . .
   61:   it('usuario con edad menor a 13 años', () => {
   62:     render(<DuolingoRegistro />)
   63: 
   64:     fireEvent.change(screen.getByTestId('edad'), { target: { value: 12 }})
   65: 
   66:     const nombre = screen.getByTestId('nombre');
   67:     const correo = screen.getByTestId('correo');
   68: 
   69:     expect(nombre.placeholder).toBe('Nombre del tutor');
   70:     expect(correo.placeholder).toBe('Correo del tutor');
   71:   });
. . .


En este ejemplo, primero renderizamos el componente DuolingoRegistro y modificamos el campo de edad para simular que el usuario ingresa 12 años.

Después, seleccionamos los campos de nombre y correo mediante su data-testid, y finalmente comparamos el valor de sus placeholder contra los textos esperados: "Nombre del tutor" y "Correo del tutor”.


Si quieres conocer más sobre probar tus componentes en React, te recomiendo los siguientes enlaces:


Estos son solo algunos ejemplos prácticos.

Si quieres profundizar mucho más en estrategias de testing, patrones y casos reales, te invito a leer mi libro Testing en React, donde encontrarás una guía completa paso a paso para dominar Jest y React Testing Library.