wait() 找不到之前触发的别名路由

wait() cannot find previously triggered alias route

使用 Cypress js,我为网站创建了端到端测试,并在 powershell 中启动了测试。由于缺乏知识,在使用 wait() 函数时,别名路由并不像我预期的那样。

cypress 测试问题的核心:

cy.route("http://localhost:8000/admin/portfolio/putstrategy")
    .as("updatestrategy")

cy.get("button")
    .contains("Upload")
    .click()

cy.wait("@updatestrategy")

日志:

我期望 wait() 匹配按钮点击发起的请求。我现在得到的是一个成功的请求响应,貌似都是在测试赶上之前。

From the docs:

Each time we use cy.wait() for an alias, Cypress waits for the next nth matching request.

我对这段引述的理解是,wait() 将匹配请求,执行顺序号与等待执行顺序号相匹配,相对于同一地址。

请求可能会超时,响应也可能会超时。在这种情况下,找不到与等待号码匹配的请求。

如何使用 Cypress 等待以编程方式调用的请求?

您的路线应该只指向路径,而不是完整的 URL。尝试将其更改为 cy.route("/admin/portfolio/putstrategy").as("updatetrategy")

我假设它只是您测试的一个片段,但如果您在调用 cy.route() 之前没有 cy.server(),您也需要添加它。

^^ 就像他说的,但这是 POST 请求。它应该是这样的

cy.route("POST", "/admin/portfolio/putstrategy").as("updatetrategy")