Testing 我在cypress测试中将get()中的超时参数传递给should()时遇到了一个问题

Testing 我在cypress测试中将get()中的超时参数传递给should()时遇到了一个问题,testing,automation,cypress,e2e-testing,Testing,Automation,Cypress,E2e Testing,在上面的代码中将get()中的timeout参数传递给should()时,我遇到了一个问题。 在then()中,我需要提取和修改将在should()中使用的数据。 在下面的代码行中,timeout参数被正确地传递给should()。 因此()应该继续重试其指定的断言,直到超时到自定义超时时间为止。 此外,它将继续重试其指定的断言,直到正确为止 cy.get('.buy-order [data-cy=balance]', {timeout: 5000}).then(el => parseFl

在上面的代码中将get()中的timeout参数传递给should()时,我遇到了一个问题。 在then()中,我需要提取和修改将在should()中使用的数据。 在下面的代码行中,timeout参数被正确地传递给should()。 因此()应该继续重试其指定的断言,直到超时到自定义超时时间为止。 此外,它将继续重试其指定的断言,直到正确为止

cy.get('.buy-order [data-cy=balance]', {timeout: 5000}).then(el => parseFloat(el.text())).should('be.greaterThan', balance);
cy.get('.buy-order [data-cy=balance]', {timeout: 5000}).should('be.greaterThan', balance);
但是在下面的代码行中,timeout parm没有传递给should()。 我认为它是由中间的“然后”函数引起的。 因此,在自定义参数超时之前,should()不会继续重试其指定的断言 此外,它不会继续重试指定的断言,直到它正确为止

cy.get('.buy-order [data-cy=balance]', {timeout: 5000}).then(el => parseFloat(el.text())).should('be.greaterThan', balance);
cy.get('.buy-order [data-cy=balance]', {timeout: 5000}).should('be.greaterThan', balance);

如何解决这个问题?

我认为您可以在
should()
中做出断言,该断言还将从
get()
传播超时:

我不知道should()可以有callbackFn参数。谢谢@martin