酶/笑话:等待Promise解析时“无法读取null的属性'nodeType'”

时间:2019-02-19 10:05:50

标签: reactjs promise jestjs enzyme

因此,在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();
};

0 个答案:

没有答案