【发布时间】:2021-04-05 17:57:48
【问题描述】:
我正在编写一个测试来确认页面大小是否正常工作,在我获得成功后,我故意将测试配置为失败。应该失败,但测试只是继续运行而不是失败。
describe("Customers' Page size changes correctly", function () {
it("Should change the page size properly.", () => {
// SETTING UP THE INTERCEPT DETECTION THAT SAYS THAT THE PAGE HAS BEEN LOADED
cy.intercept(
"/api/v1/customers/?action=customers&pageSize=10&pageNumber=1&searchText=&filterByCustomerName=false&orderBy=CreatedOn&orderDirection=desc&partyDateStart=&partyDateEnd=&customerStatus=Active"
).as("rSearchRequest10");
cy.getToken().then(() => {
cy.visit("customers");
});
// Standard page size of 10
cy.wait("@rSearchRequest10").then(() => {
// Defaults to 10, should get 10 results.
const listResults = cy
.get("[data-testid=customersList]")
.find("[data-testid=customerListItem]");
assert.isNotEmpty(listResults);
listResults.should("have.length", 11);
});
});
});
我收到消息
预计 [
, 9 more...] 的长度为 11,但得到了 10然后计时器继续运行。我没有进一步的测试,我觉得此时测试应该失败了。
cy.getToken() 是什么样的? ——
Cypress.Commands.add("getToken", () => { cy.intercept('dc.services.visualstudio.com/v2/track', { fixture: 'External/track-service-response.json' }); cy.request('GET', 'test/bridge'); });
解决方案如下。我的最终代码如下所示。 then 中的 expect 会正确抛出错误并停止执行该测试。
it("Should default to page size 10", () => { cy.intercept( "/api/v1/customers/?action=customers&pageSize=10&pageNumber=1&searchText=&filterByCustomerName=false&orderBy=CreatedOn&orderDirection=desc&partyDateStart=&partyDateEnd=&customerStatus=Active" ).as("rSearchRequest10"); cy.getToken().then(() => { cy.visit("customers"); }); // Standard page size of 10 cy.wait("@rSearchRequest10").then(() => { // Defaults to 10, should get 10 results. cy.get("[data-testid=customerListItem]").then((listing) => { expect(listing).to.have.lengthOf(10, "Should be exactly 10 results"); }); }); });【问题讨论】:
cy.getToken()长什么样子? Cypress.Commands.add("getToken", () => { cy.intercept('dc.services.visualstudio.com/v2/track', { fixture: 'External/track-service-response.json' }); cy.request('GET', 'test/bridge'); }); 传入 done 函数,it("Should change the page size properly.", (done) => {....listResults.should("have.length", 11); done(); }可能会成功。 如果您将assert放回去,您的解决方案是否有效?
标签: cypress