如何在react-native测试中模拟android后退按钮

时间:2017-07-06 14:49:56

标签: testing react-native

componentDidMount我正在添加一个侦听器来处理Android后退导航,并希望围绕它的行为添加测试。我如何首先在componentDidMount中测试某些内容,其次如何模拟单击后退按钮。

class Component extends React.Component {
  componentDidMount () {
    BackHandler.addEventListener('hardwareBackPress', () => {...})
  }
}

1 个答案:

答案 0 :(得分:1)

有几种方法可以解决这个问题:

首先,您可以假设componentDidMountBackHandler.addEventListener将起作用。那会让你只是测试你的功能。如果你走这条路,你可能想在addEventListener中注册一个命名函数,而不是箭头函数,这样你就可以在测试中定位它。

如果由于某种原因,你想测试整个生命周期,那么Facebook实际上有一个模拟出来的BackHandler可以让你模拟背压:

https://github.com/facebook/react-native/blob/master/Libraries/Utilities/mocks/BackHandler.js

您只需将该模拟导入测试,将组件安装在测试渲染器中,然后触发mockBackPress并观察您的函数是否被调用。

相关问题