Soy nuevo en Cypress y JavaScript. Por favor, ayúdenme con esta consulta para comprender más.
Tengo que automatizar un sitio web usando ciprés para validar el valor de EMI.
A continuación se muestra mi código .js donde necesito implementar la lógica de la calculadora EMI y necesito pasarlo a otro método (bloque 'it' en ciprés). El bloque 'it' obtendrá el valor del sitio web y debe validar con la lógica EMI que devuelvo en el método de código EMILogic() .
EMILogic() devolverá un valor (emi) y estoy pasando este valor en la línea cy.get('#emi').should('have.text', EMIdata.emi) pero al ejecutar el código obtengo un error de aserción en cypress como Se agotó el tiempo de reintento después de 4000 ms: se esperaba que '<span#emi>' tuviera texto indefinido, pero el texto era '925.11'
describe('EMI Calculation', function () { class abc{ EMILogic() { const amount = 20000; const rate = 5; const month = 2; let emi; rate = rate/(12*100); period = period*12; emi = (amount*rate*Math.pow(1+rate, month))/(Math.pow(1+rate, month)-1); return emi } }A continuación se muestra el código donde necesito pasar el valor de emi de la clase anterior
it('EMI calculator', function () { const EMIdata = new abc(); cy.visit('emi-calculator.html') cy.get('.MR15').click() cy.get('#emi').should('have.text', EMIdata.emi) }) })Problema:
const EMIdata = new abc();Esta línea de código significa que EMIdata es un objeto de clase abc. no hay una variable miembro llamada emi en la clase abc. por lo tanto, obtiene un valor indefinido cuando usa EMIdata.emi.
Solución:
Como su función miembro, EMILogic devuelve el valor emi. En lugar de EMIdata.emi , puede llamar a EMILogic usando EMIdata.EMILogic() dentro de su función debería.
cy.get('#emi').should('have.text', EMIdata.EMILogic())