Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

315
Views
¿Cómo probar que ReactDOM.render y otra función importada fueron llamadas en Jest?

Esta pregunta es similar a esta anterior que abrí. Pero ahora estoy usando un marco diferente, Jest .

Mi código es así:

 import * as React from "react"; import * as ReactDOM from "react-dom"; import * as injectTapEventPlugin from "react-tap-event-plugin"; import Application from "./components/Application"; import "./assets/styles/theme.css"; injectTapEventPlugin(); ReactDOM.render(<Application />, document.getElementById("root"));

Hay 3 cosas que me gustaría probar aquí:

  1. injectTapEventPlugin() fue llamado.
  2. Se llamó a ReactDOM.render con los argumentos esperados, <Application /> y document.getElementById("root") , respectivamente.
  3. Ese ./assets/styles/theme.css fue importado. Sé que este es extraño, pero esta importación está aquí para que el paquete web lo recoja y lo incluya en el paquete final. Tal vez esta importación no debería existir y debería asegurarme de que el archivo theme.css esté cargado de alguna otra manera.

Creo que al menos 1 y 2 deben probarse ... Jest usa Jasmine2 y también estoy usando Enzyme (pero eso probablemente no ayude aquí).

Cualquier ayuda es apreciada :)

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El problema para probar esto es que el módulo solo importa cosas pero no exporta nada, lo que dificulta la prueba. Entonces, la primera pregunta que debe hacerse es "¿Por qué necesito probar esto?". Porque lo único que sucede aquí son 2 llamadas de función.

Probar #1 es fácil, simule el módulo con un espía, impórtelo a la prueba y verifique que se haya llamado al espía

 import * as injectTapEventPlugin from "react-tap-event-plugin"; jest.mock('react-tap-event-plugin', ()=>jest.fn()) expect(injectTapEventPlugin).toHaveBeenCalled()

No estoy seguro si import * as sintaxis es un problema en este caso.

Para probar el n. ° 2, no estoy seguro de si es posible probarlo, ya que no tiene forma de simular document.getElementBy como se llama antes de poder sobrescribirlo en la prueba.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!