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

311
Views
El 'it.each' de Jest provoca un error 'Se esperaba que se llamara una vez, pero se llamó varias veces' cuando se usa con 'getByTestId'

Tengo un componente con algunas partes que se representan condicionalmente en función de alguna configuración en el objeto de la window . Todo esto funciona, puedo confirmar esto manualmente.

Tengo este tipo de configuración de prueba, pero lo he simplificado un poco:

 it('renders both by default', () => { // PASS const Comp = getComponent(); render(<Comp />); expect(screen.getByTestId('one')).toBeInTheDocument(); expect(screen.getByTestId('two')).toBeInTheDocument(); }) it.each([ { testId: 'one', otherTestId: 'two'}, { testId: 'two', otherTestId: 'one' }, ])('renders $testId, not $otherTestId', (testId, otherTestId) => { // FAIL delete window.config[otherTestId]; // this works const Comp = getComponent(); render(<Comp />); expect(screen.getByTestId(testId)).toBeInTheDocument(); expect(screen.getByTestId(otherTestId)).not.toBeInTheDocument(); })

Pero estoy recibiendo este error:

 Expected done to be called once, but it was called multiples times. Reason 'two'.

Lo cual no es algo que haya visto antes. Ninguna de mis pruebas que se ejecutan aquí es asíncrona. El componente no es asíncrono. No estoy usando hecho en ningún lugar cerca de esto.

¿Qué esta pasando?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Necesita desestructurar sus variables de prueba

Jest espera que testId sea un objeto que contenga todas las variables de prueba y que otherTestId sea la función done .

No estoy seguro de por qué cree que se llama varias veces, pero haciendo el primer argumento:

 { testId, otherTestId }

Funciona alrededor de esto y coincide con la documentación correctamente.

about 4 years ago · Juan Pablo Isaza 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!