在 Cypress 测试中,increment 函数不起作用,每次都需要递增数字?

In a Cypress test, increment function doesn't work which needs to increments the number each time?

在 Cypress 测试中。

我正在调用一个简单的递增函数getNumber(),每次调用该函数时都需要递增数字。

创建表单时需要将此数字附加到文本字段的名称,即 唯一的表单名称

虽然运行测试,实际上是returns1,但是运行第二次,还是returns1 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)
        })

您每次调用 getNumber() 时都在重新声明 count。将 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)
        })