Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

201
Vistas
TypeError: no se pueden leer las propiedades de undefined (leyendo 'clic'). fireEvent.click funciona pero userEvent.click no. ¿Por qué?

Acabo de empezar a aprender a probar React con Jest y estoy luchando con algo simple. Cuando llamo a userEvent.click(btn), la prueba falla diciendo que userEvent.click() no está definido.

 import { render, fireEvent, screen } from "@testing-library/react"; import { userEvent } from "@testing-library/user-event"; import '@testing-library/jest-dom'; import '@testing-library/dom' import { Button } from "./Button"; describe("clicks button", () => { it("onclick", () => { render(<Button />); screen.debug(); let btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("Click me"); userEvent.click(btn); btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("ButtonClicked"); }); });
 export const Button = () =>{ const [buttonText, setButtonText] = useState("Click me") const handleClick = () =>{ setButtonText("ButtonClicked") } return( <div> <button onClick={handleClick} title="dummyButton">{buttonText}</button> </div> ) } ● clicks button › onclick TypeError: Cannot read properties of undefined (reading 'click') 17 | let btn = screen.getByTitle("dummyButton"); 18 | expect(btn.innerHTML).toBe("Click me"); > 19 | userEvent.click(btn); | ^ 20 | btn = screen.getByTitle("dummyButton"); 21 | expect(btn.innerHTML).toBe("ButtonClicked"); 22 | }); at Object.<anonymous> (src/Components/Button/Button.test.js:19:15)
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Parece que es una exportación predeterminada basada en los documentos:

 import userEvent from '@testing-library/user-event'

¿Puedes actualizar tu importación e intentarlo de nuevo?

about 4 years ago · Juan Pablo Isaza Denunciar

0

Lo que me solucionó fue npm install @testing-library/user-event@13.5.0

El evento de usuario tiene muchos problemas en mi opinión y no se ha perfeccionado. Tuve que degradar mi versión de npm para que funcionara.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Pruebe el siguiente código. Cambié "eso" a una función de flecha asíncrona y agregué esperar antes de userEvent. Esto funciona para mí. También haga una importación predeterminada en la parte superior.

 describe("clicks button", () => { it("onclick", async () => { render(<Button />); screen.debug(); let btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("Click me"); await userEvent.click(btn); btn = screen.getByTitle("dummyButton"); expect(btn.innerHTML).toBe("ButtonClicked"); }); });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda