【发布时间】:2018-04-27 23:06:12
【问题描述】:
使用 cypress.io 进行测试时,有没有一种好方法可以断言没有对给定 URL 发出 XHR 请求?
我想断言单击“保存”按钮时添加了一个新的 foo,而不是单击“取消”按钮时添加了一个新的 foo。
类似这样的:
cy.route('POST', '/foos').as('postFoo');
cy.get('.cancel-button').click();
cy.route('@postFoo').should('not.have.been.called'); // (magic imaginary syntax!)
我尝试使用执行 assert.fail 的 onRequest 回调来设置 cy.route,但是当调用 URL 时,测试并没有失败。
现在,我正在捕捉我的(有意的)“未发生请求”错误,如下所示:
cy.on('fail', (err, runnable) => {
expect(err.message).to.include('No request ever occurred.');
return false;
});
cy.wait('@postFoo', { timeout: 0 }).then(xhr => {
throw new Error('Unexpected API call.');
});
...这似乎是有效的,但它肯定不会感觉很“柏树-y”。
【问题讨论】:
-
在执行某些 UI 操作时,是否有办法检查网络选项卡中调用的特定 API?
标签: cypress