赛普拉斯拦截不覆盖赛普拉斯别名
cypress intercept not overriding cypress alias
我正在做一些测试,我拦截了对同一个 url 的一些 api 调用,我在 beforeEach 之前做了一个,然后在测试中做了另一个,但出于某种原因我没有明白我改变了别名。我正在做一些阅读,覆盖是固定的,但显然不是?
请随时提出更多问题。
希望我能得到一些意见。
我的代码:
// Describe block:
beforeEach(() => {
cy.visit("/");
cy.intercept(
{
method: "GET",
url: "/customers*",
hostname: "local.api",
},
{
fixture: "customers.json",
}
).as("customers");
cy.get("[class^=ant-menu-item]", { multiple: true }).eq(1).click();
cy.wait("@customers");
});
[
["customerName", "ASC", 0],
["nextReviewDate", "ASC", 1],
["nextReviewType", "ASC", 2],
].forEach(([sortValue, sortOrder, index]) => {
it(`Sort by direction ${sortOrder} order ${sortValue}`, () => {
cy.get(".ant-table-column-sorters", { multiple: true }).eq(index).click();
cy.intercept("GET", "/customers*").as("request");
cy.wait("@request").then((interception) => {
cy.wrap(interception.response.statusCode).should("eq", 200);
cy.wrap(interception.request.url).should(
"include",
`https://allica.local.api/customers?page=1&sortBy=${sortValue}&pageSize=5&direction=${sortOrder}`
);
});
});
});
出现以下错误:
如果没有overriding,如何克服这个考验?
提前致谢。
拦截是一个事件侦听器。必须在事件触发前设置
cy.intercept("GET", "/customers*").as("request");
cy.get(".ant-table-column-sorters", { multiple: true }).eq(index).click();
cy.wait("@request").then((interception) => {
...
实际上,测试之间的拦截没有变化,所以你可以只设置一次并等待多次
before(() => cy.intercept("GET", "/customers*").as("request"))
[
["customerName", "ASC", 0],
["nextReviewDate", "ASC", 1],
["nextReviewType", "ASC", 2],
].forEach(([sortValue, sortOrder, index]) => {
it(`Sort by direction ${sortOrder} order ${sortValue}`, () => {
cy.get(".ant-table-column-sorters").eq(index).click();
cy.wait("@request").then((interception) => {
我正在做一些测试,我拦截了对同一个 url 的一些 api 调用,我在 beforeEach 之前做了一个,然后在测试中做了另一个,但出于某种原因我没有明白我改变了别名。我正在做一些阅读,覆盖是固定的,但显然不是? 请随时提出更多问题。 希望我能得到一些意见。
我的代码:
// Describe block:
beforeEach(() => {
cy.visit("/");
cy.intercept(
{
method: "GET",
url: "/customers*",
hostname: "local.api",
},
{
fixture: "customers.json",
}
).as("customers");
cy.get("[class^=ant-menu-item]", { multiple: true }).eq(1).click();
cy.wait("@customers");
});
[
["customerName", "ASC", 0],
["nextReviewDate", "ASC", 1],
["nextReviewType", "ASC", 2],
].forEach(([sortValue, sortOrder, index]) => {
it(`Sort by direction ${sortOrder} order ${sortValue}`, () => {
cy.get(".ant-table-column-sorters", { multiple: true }).eq(index).click();
cy.intercept("GET", "/customers*").as("request");
cy.wait("@request").then((interception) => {
cy.wrap(interception.response.statusCode).should("eq", 200);
cy.wrap(interception.request.url).should(
"include",
`https://allica.local.api/customers?page=1&sortBy=${sortValue}&pageSize=5&direction=${sortOrder}`
);
});
});
});
出现以下错误:
如果没有overriding,如何克服这个考验?
提前致谢。
拦截是一个事件侦听器。必须在事件触发前设置
cy.intercept("GET", "/customers*").as("request");
cy.get(".ant-table-column-sorters", { multiple: true }).eq(index).click();
cy.wait("@request").then((interception) => {
...
实际上,测试之间的拦截没有变化,所以你可以只设置一次并等待多次
before(() => cy.intercept("GET", "/customers*").as("request"))
[
["customerName", "ASC", 0],
["nextReviewDate", "ASC", 1],
["nextReviewType", "ASC", 2],
].forEach(([sortValue, sortOrder, index]) => {
it(`Sort by direction ${sortOrder} order ${sortValue}`, () => {
cy.get(".ant-table-column-sorters").eq(index).click();
cy.wait("@request").then((interception) => {