簡體   English   中英

如何從賽普拉斯的 beforeEach 中刪除所有 cy.route

[英]How to remove all cy.route from beforeEach in Cypress

我正在為我公司的應用程序創建大量測試。 在每次測試之前我需要創建一個 state 來處理它,它總是一樣的,所以我在我自己的方法中創建了一些路由,然后在我創建的 support/index.js 文件中創建 beforeEach 看起來像這樣

beforeEach(() => {
    cy.server();
    cy.mockSearches(SHORTEN_SEARCHES); // this only creates mocks
    cy.loginAdmin();
});

在 99% 的測試中,它運行良好,但有一個測試需要處理真實數據。 我應該怎么辦? 有沒有辦法忽略全局 beforeEach? 我想我可以將這部分代碼移動到每個測試之前的每個測試,但那是代碼重復? 或者也許我應該用空響應覆蓋這個 cy.route?

您可以在設置之前向beforeEach()添加條件以退出:

beforeEach(() => {
    if (shouldUseRealData) return;
    cy.server();
    cy.mockSearches(SHORTEN_SEARCHES); // this only creates mocks
    cy.loginAdmin();
});

如有關環境變量的文檔中所述,您可以通過不同的方式設置環境變量。 一種方法是在調用 cypress run 時在命令行中設置它:

cypress run --env use_mock=true

然后你可以將它與Cypress.env('use_mock')一起使用。

beforeEach(() => {
    if (Cypress.env('use_mock')) {
        cy.server();
        cy.mockSearches(SHORTEN_SEARCHES); // this only creates mocks
        cy.loginAdmin();
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM