【发布时间】:2018-11-10 02:12:35
【问题描述】:
我有这样的方法
fetch('first api')
.then(resp => {
if (resp.status === '500') {
return Promise.reject('some error');
}
return fetch('second api');
})
.then(resp => {
// do something;
})
.catch(resp => {
// do something;
});
我正在对第一个 fetch 调用进行存根
const stub = sinon.stub(window, 'fetch');
现在测试成功调用
stub.withArgs('first api').returns(Promise.resolve(//window.Response));
或失败
stub.withArgs('first api').returns(Promise.reject(//window.Response));
有两个问题:
- 我如何
spy在第一个 api 错误情况下不调用第二个 fetch api? - 如何存根两个 fetch 调用并测试在两个 fetch 调用都解决后最后一个
then是否被调用?
谢谢。
【问题讨论】:
标签: javascript fetch sinon