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

483
Visualizações
Práctica recomendada de Cypress: almacene y compare dos valores

Quiero almacenar un valor, luego realizar una acción y afirmar que el valor no ha cambiado. Tengo un código que funciona, pero me gustaría tener información si hay una solución más elegante.

La idea básica es:

  • Obtenga el número o los resultados que se muestran ('recuentos'), guárdelo en una función .then()
  • cambiar el uso
  • Obtenga la cantidad de resultados que se muestran ('new_counts'), guárdelo en una nueva función .then
  • Compare recuentos y nuevos_recuentos en la segunda función .then()
 describe('Store and compare a value', () => { it('store and compare', () => { cy.login() cy.visit('url2') cy.get('.total-count-results').invoke('text') .then((text) => { const counts = text cy.get('.medium.col100 > .filterwrapper > input').type('Test Dummy',{force: true}) cy.get('.medium.col100 > .filterwrapper > input').type('{enter}') cy.get('.total-count-results').invoke('text') .then((text) => { const new_counts = text expect(new_counts).to.eq(counts) }) }) }) })

Eso es lo mejor que se me ocurrió para manejar la asincronía.

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

0

No creo que se requieran alias. Aquí está mi solución que probé localmente. Mantuve la mayor parte del código en la respuesta de Alapan Das para que sea más fácil de comparar. A mí me parece más conciso y fácil de leer sin alias.

 describe('Store and compare a value', () => { it('store and compare', () => { cy.login() cy.visit('url2') cy.get('.total-count-results').invoke('text') .then((previousText) => { cy.get('.medium.col100 > .filterwrapper > input').type('Test Dummy',{force: true}) cy.get('.medium.col100 > .filterwrapper > input').type('{enter}') cy.get('.total-count-results').invoke('text').should("eq", previousText) }) }) })
about 4 years ago · Juan Pablo Isaza Relatório

0

Puede usar alias para esto y hacer algo como esto:

 describe('Store and compare a value', () => { it('store and compare', () => { cy.login() cy.visit('url2') cy.get('.total-count-results').invoke('text').as('counts') cy.get('.medium.col100 > .filterwrapper > input').type('Test Dummy', { force: true, }) cy.get('.medium.col100 > .filterwrapper > input').type('{enter}') cy.get('.total-count-results').invoke('text').as('new_counts') cy.get('@counts').then((counts) => { cy.get('@new_counts').then((new_counts) => { expect(new_counts).to.eq(counts) }) }) }) })
about 4 years ago · Juan Pablo Isaza Relatório

0

Una buena solución para comparar valores como este puede ser usar una variable de cierre, según el ejemplo en la documentación de Cypress en https://docs.cypress.io/api/commands/should#Compare-text-values-of-two -elementos . En tu ejemplo, algo como esto:

 describe('Store and compare a value', () => { it('store and compare', () => { let counts // closure variable cy.login() cy.visit('url2') cy.get('.total-count-results').invoke('text') .then(text => counts = text) // set closure variable cy.get('.medium.col100 > .filterwrapper > input').type('Test Dummy',{force: true}) cy.get('.medium.col100 > .filterwrapper > input').type('{enter}') cy.get('.total-count-results').invoke('text') .then(new_counts => expect(new_counts).to.eq(counts)) // compare closure variable //.should("eq",counts) // alternative to .then clause }) })

Esto evita tener cláusulas '.then' anidadas, que pueden convertirse en un infierno de devolución de llamada, y es menos detallado.

(Consulte https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures para obtener información sobre los cierres: en resumen, "un cierre le da acceso al alcance de una función externa desde una función interna". El interior Las funciones aquí son las dos funciones .then : acceden a la variable de counts desde el alcance de it función exterior.)

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