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

357
Visualizações
La comparación profunda igual no funciona en Cypress 9.7.0

Actualicé mi cypress a la versión 9.7.0 y ahora mismo tengo un problema con deep equal . Cuando escribí la línea de prueba de código:

 expect([1,2,3]).to.deep.equal([1,2,3]);

ingrese la descripción de la imagen aquí

Todo funciona correctamente.

Mientras estoy probando la tienda redux, recibí un error que se ve

Se agotó el tiempo de reintento después de 4000 ms: se esperaba que [Array(2)] fuera profundamente igual a [Array(2)]

ingrese la descripción de la imagen aquí

Las matrices en la vista previa de la consola de devtool son las mismas... Lo he intentado de dos maneras para escribir la prueba. También lo combiné con asíncrono y tiempos de espera.

Primer intento:

 it('Example redux check', () => { cy.fixture('file.json').then((fixtures) => { cy.window() .its('store') .invoke('getState') .its('queue.queueItems').should('deep.equal', fixtures.store.queue.queueItems); }); });

Segundo intento

 it('Example redux check', () => { cy.fixture('file.json').then((fixtures) => { const getQueueItems = (win) => { return win.store.getState().queue.queueItems; } cy.window() .pipe(getQueueItems) .should('deep.equal', fixtures.store.queue.queueItems); }); });

¿Alguien tuvo un problema similar o idea de cómo evitar ese tiempo de espera? Sucede exactamente lo mismo al comparar cargas útiles asíncronas...

over 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

No me puedo quejar de la afirmación deep.equal en Cypress v9.7.0, incluso de matrices y objetos profundamente anidados, excepto cuando el orden difiere.

Si su problema es la diferencia en el orden de la matriz, intente agregar el paquete deepEqualInAnyOrder

 const deepEqualInAnyOrder = require('deep-equal-in-any-order'); chai.use(deepEqualInAnyOrder); it('matches when ordering is different', () => { const expected = [{a:{x:1}}, {b:2},{c:3}]; expect([{a:{x:1}}, {b:2}, {c:3}]).to.deep.equal(expected) // passes expect([{b:2}, {a:{x:1}}, {c:3}]).to.deep.equal(expected) // fails expect([{b:2}, {a:{x:1}}, {c:3}]).to.deep.equalInAnyOrder(expected) // passes });
over 4 years ago · Juan Pablo Isaza Relatório

0

También quería ver si deep.equal en el elemento <h1> de http://example.com tendría éxito.

Aquí está mi ejemplo mínimo y reproducible.

 // Cypress 9.7.0 it('passes deep-equal of two DOM objects', () => { cy.visit('http://example.com') cy.get('h1').then($el1 => { // get h1 1st time cy.get('h1').then($el2 => { // get another copy // Are they different objects? expect($el1).to.not.equal($el2) // pass expect($el1 === $el2).to.equal(false) // pass // Do they deep-equal expect($el1).to.deep.equal($el2) // pass }) }) })

ingrese la descripción de la imagen aquí

over 4 years ago · Juan Pablo Isaza Relatório

0

Casi todas las interfaces que uso tienen Cypress, incluidas algunas de código abierto.

Está relacionado con algunos problemas abiertos en GitHub y afecta a las últimas versiones de Cypress.

https://github.com/cypress-io/cypress/issues/21353

https://github.com/cypress-io/cypress/issues/21469

Esto es lo que obtengo en un WIP después de actualizar algunas pruebas que usan deep.equal :

Error con igualdad profunda

Su primer ejemplo parece más estándar.

Recomiendo bajar a una versión inferior. La siguiente versión funcionó para mí antes de la actualización:

9.5.4

over 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
Assistente virtual