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

346
Vistas
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...

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

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 });
about 4 years ago · Juan Pablo Isaza Denunciar

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í

about 4 years ago · Juan Pablo Isaza Denunciar

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

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