如何在JavaScript中获取其他方法/函数的值?Cypress EMI校验问题
问题原因
- 类方法调用错误:你仅实例化了
abc类,没有调用EMILogic()方法获取计算结果,直接读取不存在的emi实例属性,因此得到undefined值,和页面实际值比对失败。 - 方法内部语法错误:你将
rate定义为const常量,后续又对其重新赋值,运行时会直接抛出类型错误;同时代码中出现了未定义的period变量,属于多余的错误逻辑。 - 数据格式不匹配:计算得到的是数字类型,页面返回的是保留两位小数的字符串,直接比对会因格式不一致失败。
修正方案
- 调整
EMILogic()方法内部的变量定义和逻辑,删除无效的period相关代码,将rate改为可修改的let类型 - 实例化类后主动调用
EMILogic()方法获取计算结果,将结果格式化为两位小数的字符串后再和页面值比对
完整修正代码
describe('EMI Calculation', function () { class abc{ EMILogic() { const amount = 20000; let rate = 5; const month = 2; let emi; rate = rate/(12*100); // 删除无效的period相关代码 emi = (amount*rate*Math.pow(1+rate, month))/(Math.pow(1+rate, month)-1); // 直接返回两位小数的字符串,和页面格式对齐 return emi.toFixed(2) } } it('EMI calculator', function () { const EMIdata = new abc(); // 调用方法获取计算结果 const targetEmi = EMIdata.EMILogic() cy.visit('emi-calculator.html') cy.get('.MR15').click() cy.get('#emi').should('have.text', targetEmi) }) })
内容的提问来源于stack exchange,提问作者shreyas
相关产品推荐
相关产品推荐

