javascript - 如何从赛普拉斯的 beforeEach 中删除所有 cy.route
问题描述
我正在为我公司的应用程序创建大量测试。在每次测试之前,我需要创建一个状态来处理它,它总是一样的,所以我在自己的方法中创建了一些路由,然后在我创建的 beforeEach 的 support/index.js 文件中,看起来像这样
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();
}
});
推荐阅读
- xunit - 给定一个带有 xUnit 单元测试的程序集,列出所有测试而不运行的命令是什么?
- javascript - For 循环 sumArray 的问题
- c++ - 为什么我的对象声明不调用默认构造函数?
- python - 使用 5 人组合查找包含特定 5 人组合的数据帧的子集,每列标识 5 人中的一个
- java - 我怎样才能阻止这些汽车相互碰撞?
- r - 如何将相同的过滤器应用于 50 多个数据帧?
- python - Python将两个两行组合成单行
- ionic-framework - 离子链接侧菜单项到外部网站
- python - 如何在 If 语句中发出通知但在 Python 中继续 While 循环?
- stripe-payments - 为小额交易充值客户余额