假设我想测试以下内容:
import {fetchResourceFromBackend} from './myfetch';
const fetchSomething = (dispatch) => {
dispatch(2);
return fetchResourceFromBackend('/api/abc').then( result => {
dispatch(3);
});
};
fetchResourceFromBackend
是一些复杂的功能。如何对此进行测试,并且不受fetchResourceFromBackend
代码的影响(任何模式或工具建议,我使用mocha
和sinon
但无法实现)?
我唯一的选择是fetchResourceFromBackend
作为fetchSomething
的参数,所以我可以嘲笑它吗?
答案 0 :(得分:0)
使用 jest 作为@Mikhail建议我解决了这样的问题:
// test/something-test.js
import {myFetch} from '../_mocks_/utilities';
jest.doMock('modules/utilities', () =>({
myFetch: myFetch
}));
const {fetchSomething} = require('modules/something');
describe('#fetchSomething', ...
此处fetchSomething
是受测试的函数,它对来自myFetch
的{{1}}函数具有内部依赖性。我使用'modules/utilities'
中的myFetch
来模仿该依赖关系。