【发布时间】:2021-03-24 17:25:41
【问题描述】:
我开始使用 cypress,我想做 2 次测试。如果我的 api 返回“false”,则验证显示的内容;如果我的 api 返回“true”,则验证屏幕上显示的内容。 我试着做一个像这样的简单测试:
context('contextTest', () => {
before(() => {
cy.waitLoading();
});
beforeEach(() => {});
it('false test', function() {
cy.intercept('POST', '**/test/alreadySent', {
fixture: 'test/alreadySent-false.json',
}).as('alreadySent');
cy.wait('@alreadySent');
cy.get('[data-cy=alreadysent-button]');
});
});
但是拦截不起作用,它总是返回真正的 api 调用。 奇怪的是,如果我只是将代码放在我的 before() 中,一切都可以正常工作。
context('contextTest', () => {
before(() => {
cy.intercept('POST', '**/test/alreadySent', {
fixture: 'test/alreadySent-false.json',
}).as('alreadySent');
cy.waitLoading();
});
beforeEach(() => {});
it('false test', function() {
cy.wait('@alreadySent');
cy.get('[data-cy=alreadysent-button]');
});
});
但我需要更改下一个测试的截距,所以我想专门设置这个测试的截距。
有可能吗,为什么我的第一个代码似乎不起作用? 或者我应该在另一个文件上编写我的下一个测试并且在同一个文件上进行这种验证是一种不好的做法?
【问题讨论】:
标签: javascript cypress