Jest React Native组件承诺

时间:2018-08-22 07:43:08

标签: react-native jestjs

我正在开发我的第一个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没有退出。

如何清除此错误?

0 个答案:

没有答案