因此,在Jest + Enzyme测试中,我正在尝试测试端点调用的成功回调。
我正在使用waitForExpect等待Promise解决之后再检查包装器的状态,并使用nock模拟端点响应。
我目前拥有的是这样的东西(在async
函数内部):
createScope()
.get('/someEndpoint')
.query({
data: something
})
.reply(200, 'expectedData');
const wrapper = mount(
<MyComponent/>
);
wrapper
.find('[data-enzyme-id="validator-action"]')
.first()
.simulate('click');
await waitForExpect(() => {
expect(wrapper.state('status')).toBe('success');
})
运行该测试时,在wrapper
内的waitForExpect
变量上出现错误:
TypeError: Cannot read property 'nodeType' of null
我在这里想念什么?为什么我的包装器在waitForExpect
中为空?
编辑:这也是我要在MyComponent
上进行测试的内容:
getDetails({
name: validatorName
})
.then(details => {
// ...do something with the details, and in the end update the state
this.setState({
status: 'success'
});
})
.catch(error => {
this.setState({
status: error
});
});
getDetails
是一个服务模块,使用wretch
进行实际呼叫:
const getDetails = data => {
return wretch('/someEndpoint')
.query(data)
.get()
.json();
};