如何从 JavaScript 中的其他 method/function 获取值

How to get the value from other method/function in JavaScript

我是 Cypress 和 JavaScript 的新手,请帮助我解决这个问题以了解更多信息

我必须使用 cypress 来自动化网站以验证 EMI 值。

下面是我的 .js 代码,我需要在其中实现 EMI 计算器逻辑并将其传递给另一个方法('it' 赛普拉斯中的块)。 'it' 块将从网站获取值,并应使用我在代码 EMILogic() 方法中 return 的 EMI 逻辑进行验证。

EMILogic() 将 return 一个值 (emi),我在 cy.get('#emi').should('have.text', EMIdata.emi) 但在执行代码时,我在 cypress 中遇到断言错误,因为 4000 毫秒后重试超时:预期 '' 未定义文本,但文字是“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

   }
   }

下面是我需要从上面传递emi值的代码class

    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)

   })
   })

问题:

const EMIdata = new abc();

这行代码表示EMIdata是classabc的一个对象。 class abc 上没有名为 emi 的成员变量。因此在使用 EMIdata.emi.

时你会得到一个 undefined

解决方案:

作为你的成员函数EMILogic returns的emi值。您可以在 should 函数中使用 EMIdata.EMILogic() 来调用 EMILogic,而不是 EMIdata.emi

cy.get('#emi').should('have.text', EMIdata.EMILogic())