我正在尝试为一个React组件运行测试;但是,此组件的状态是根据从API调用获得的响应来设置的。
componentDidMount() {
getStatus().then(status => {
this.setState({status: status});
});
}
有没有办法使用Mocha来模拟这个响应,而不是实际点击API?由于这是componentDidMount()
,我将始终使用Enzyme的shallow
和mount
进入此区块,并抛出fetch is not defined
错误
我可以通过在我的测试设置文件中导入isomorphic-fetch
来消除此错误,但我更愿意只是模拟假api并做出响应。
答案 0 :(得分:1)
使用fetch-mock模拟isomorphic-fetch
api来电。
var fetchMock = require('fetch-mock');
describe('Test mocking isomorphic-fetch', function() {
before(function() {
fetchMock.get('/my/api/endpoint', {hello: 'world'});
});
after(function() {
fetchMock.restore();
});
it('should mock fetch', function() {
// your test code here
});
});