在componentDidMount
我正在添加一个侦听器来处理Android后退导航,并希望围绕它的行为添加测试。我如何首先在componentDidMount
中测试某些内容,其次如何模拟单击后退按钮。
class Component extends React.Component {
componentDidMount () {
BackHandler.addEventListener('hardwareBackPress', () => {...})
}
}
答案 0 :(得分:1)
有几种方法可以解决这个问题:
首先,您可以假设componentDidMount
和BackHandler.addEventListener
将起作用。那会让你只是测试你的功能。如果你走这条路,你可能想在addEventListener
中注册一个命名函数,而不是箭头函数,这样你就可以在测试中定位它。
如果由于某种原因,你想测试整个生命周期,那么Facebook实际上有一个模拟出来的BackHandler可以让你模拟背压:
https://github.com/facebook/react-native/blob/master/Libraries/Utilities/mocks/BackHandler.js
您只需将该模拟导入测试,将组件安装在测试渲染器中,然后触发mockBackPress
并观察您的函数是否被调用。