在赛普拉斯测试中。
我正在调用一个简单的增量函数getNumber()
,每次调用该函数时都需要递增该数字。
在创建表单时,此数字必须附加到文本字段的名称上,即唯一的表单名称。
在运行测试时,它实际上返回1
,但是在第二次运行时,它仍然返回1
而不是2
。
我如何实现这一目标?或者有更好的方法吗?
有人,请提出一个更好的方法来实现这一目标?
代码:
const getNumber = (() => {
var count = 0;
return () => ++count;
})();
cy.wrap({ number: getNumber }).invoke('number')
.then(number => {
const someNum = number;
cy.log(someNum);
cy.visit("https://sometestsite.com/createForm")
cy.get('#SomeIdOfTextField').type('Form_Name'+someNum)
})
答案 0 :(得分:1)
每次调用count
时,您都在重新声明getNumber()
。像这样将count
声明移到函数之外:
var count = 0;
const getNumber = (() => {
return () => ++count;
})();
cy.wrap({ number: getNumber }).invoke('number')
.then(number => {
const someNum = number;
cy.log(someNum);
cy.visit("https://sometestsite.com/createForm")
cy.get('#SomeIdOfTextField').type('Form_Name'+someNum)
})