对具有多个状态渲染的本机测试快照做出反应?

时间:2019-10-26 01:00:53

标签: react-native react-native-testing-library

我有一个在其componentDidMount方法中多次设置状态的组件。例如:

componentDidMount = async () => {
  this.setState({ waiting: true });
  try {
    const data = await this.fetchData();

    this.setState({ data })
  } catch (err) {
  } finally {
    this.setState({ waiting: false });
  }
};

使用类似于以下内容的渲染方法:

render() {
    if (this.state.waiting) {
      return (
        <View style={{ flex: 1 }}>
          <ActivityIndicator size="large" />
        </View>
      );
    }

    return (
       ... actual view ...
    )
}

我可以使用react-native-testing-library

进行测试
const tree = testing.render(<HomeScreen {...props} />);

但是我只得到了等待。但是,当我逐步进行测试时,其他渲染器会被击中。

所以快照测试似乎只捕获了 first 渲染。有没有办法给我 final 渲染?

1 个答案:

答案 0 :(得分:0)

结果是我需要等待微任务。

await testing.flushMicrotasksQueue();

有花招