Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

314
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda