我有以下功能,我想用mocha和chai测试它,期待。
这里“fetch”和“dispatch”是一个函数。 “fetch”用于对服务器执行ajax调用
function fetchMetadata() {
return (dispatch) => {
fetch('/json/metadata').then(
(result) => {
if (result.status === 200) {
return result.json();
}
throw "request failed";
}
).then(
(jsonResult) => {
dispatch(jsonResult);
}
);
}
}
我正在尝试测试如下,但我无法让测试失败,因为错误被承诺吞噬了!
“fetchMock”是一个模拟“fetch”函数的函数,因此我们实际上不会调用服务器来获取数据。
describe('Should work', ()=>{
before(()=>{
fetchMock.mock('^/json/metadata', {body1:"testing"})
});
it.only('should fetch metadata when fetchMetadata is called ', function(){
let returnedFetchMetadataFn = fetchMetadata();
let mockDispatch = (argument)=>{
expect(argument).toBe('SET_METADATA1');
};
returnedFetchMetadataFn(mockDispatch);
});
});
我做错了什么或我错过了什么?