我正在开发我的第一个React Native App。我创建了一个组件,该组件从componentDidMount中的API加载数据:
export default class MyComponent extends Component {
state = {
data: null
};
async componentDidMount() {
let data = await this.getData();
this.setState({data: data});
}
getData() {
return new Promise((resolve, reject) => {
Api.get().then(data => {
resolve(data);
});
});
}
render() {
return (
....
);
}
}
getData方法是异步的。与此代码一起工作都很好。
现在我想开玩笑地测试我的组件。这是我的实际代码:
test('Default test', () => {
const p = Promise.resolve({
...
});
MyComponent.prototype.getData = jest.fn(() => {
return p;
});
const wrapper = renderer.create(
<MyComponent />
);
return p.then(() => {
expect(wrapper.toJSON()).toMatchSnapshot();
});
});
在此代码下一切正常。但是,如果我的文件中有多个测试,则启动jest时会出现此错误:
测试运行一秒钟后,Jest没有退出。
如何清除此错误?