【问题标题】:Run all assertions of a test in Cypress在 Cypress 中运行测试的所有断言
【发布时间】:2020-06-30 11:38:03
【问题描述】:

我有一个关于测试结构的问题。 docs 明确声明要编写具有多个断言的测试,而不是编写具有单个断言的多个测试。

但如果我想测试多个元素是否可见,如果第一个元素不可见,则测试将失败,因此我对其他元素一无所知。我可以做些什么来运行所有断言?

it("Page should show two actions", () => {
  cy.visit("users/list");
  cy.get("[data-cy=createUser]")
    .should("be.visible")
    .and("have.text", "Create user");
  cy.get("[data-cy=exportUserData]")
    .should("be.visible")
    .and("have.text", "Export data");
});

【问题讨论】:

    标签: testing automated-tests cypress ui-testing


    【解决方案1】:

    要运行所有断言,您必须确保元素可见。通常在运行 cypress 时,通过使用这个函数 cy.wait(2000)

    【讨论】:

    【解决方案2】:

    显然我只是没有找到正确的措辞。当然,它被称为soft assertion,而不是内置在赛普拉斯中,实际上违背了 Chai 的断言哲学。 有一些解决方法,尽管我真的找不到 Cypress 或 Chai 的官方文档来告诉我他们为什么要反对软断言。

    你可以做的是:

    • 使用 npm 包 soft-assert 如上所述 here
    • here 所述自行实施(可以打破赛普拉斯的重试/超时机制)

    【讨论】:

      猜你喜欢
      • 2020-06-02
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-25
      • 1970-01-01
      相关资源
      最近更新 更多