我想在cypress中设置一些基本测试,使用cy.server()cy.route()和cy.wait()对一些基本的http调用进行存根。在我的应用程序中,我需要断言该路由已存根的次数。例如,当我提交表单时,它将请求发送到localhost:3001,如果我再次提交该表单,它将再次提交。我想断定提交的数量。像Expect(xhr).to.have.lenght(2)之类的东西,但是我不知道怎么做。
到目前为止,这是我的简单测试
it("Checking number of requests", () => {
cy.server();
cy.route({
method: "POST",
url: "**/signupNewUser*",
response: {
kind: "identitytoolkit#SignupNewUserResponse",
idToken: "sarasa",
email: "sarasa@gmail.com",
refreshToken: "sarasa2",
expiresIn: "3600",
localId: "sarasa3",
customTestingProperty: "custom"
}
}).as("postAPI");
cy.fillForm(password);
cy.contains("Submit").click();
cy.contains("Submit").click();
// Here I would like to assert that "**/signupNewUser*" has been requested 2 times.
// I don't want to test for how many times has the button been clicked or the form been submitted.
});
答案 0 :(得分:0)
基于赛普拉斯源代码上的GitHub线程-https://github.com/cypress-io/cypress/issues/477#issuecomment-412617742
实际上,有一种未公开的方法来检查使用别名上的.all
响应XHR的次数。
cy.wait('@postAPI')
cy.tick(10000)
cy.get('@postAPI.all').should('have.length', 2)