在赛普拉斯测试中,增量功能不起作用,需要每次递增数字吗?

时间:2018-09-21 11:01:42

标签: javascript cypress

在赛普拉斯测试中。

我正在调用一个简单的增量函数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)
        })

1 个答案:

答案 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)
        })