【发布时间】:2019-11-20 13:45:00
【问题描述】:
// 我的 fetch 调用的单元测试用例。我试图模拟 fetch 调用。当时我正在检查状态是否更新。我该怎么做呢
it('button press fetch data from json placeholder', async () => {
global.fetch = jest.fn(
() =>
new Promise(resolve =>
resolve({
ok: true,
json: () => Promise.resolve([1]),
}),
),
);
const button = wrapper.find('[testID="inputButton"]');
button.props().onPress();
wrapper.update();
console.log(wrapper.instance());
expect(wrapper.instance().state.responseData.length).toBe(1);
});
// 错误
Expected: 1
Received: 0
44 | wrapper.update();
45 | console.log(wrapper.instance());
> 46 | expect(wrapper.instance().state.responseData.length).toBe(1);
| ^
47 | });
48 | });
// 组件中的实际代码
buttonPress = () => {
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(res => res.json())
.then(response => {
this.setState({
responseData: response,
});
});
};
【问题讨论】:
标签: reactjs react-native jestjs enzyme