在我的React Native项目中,我使用StackNavigator进行路由。
我正在创建一个这样的:
const Navigator = StackNavigator(routeConfig, stackConfig);
在我的应用中使用它:
export default class App extends React.Component {
//some other code
render() {
return (
<Provider store={this.props.store}>
<View >
<Navigator />
</View>
</Provider>
);
}
}
现在,我在我的应用中添加了一个新屏幕routeConfig
,我想检查它是否被调用。
在我的测试中,我有类似的东西:
const fakeMyRouteCreator = jest.fn();
jest.spyOn(myRouteCreator, 'default').mockImplementation((_) => fakeMyRouteCreator);
const wrapper = mount(
<App store={store} />,
{testEnvironment: jsdom}
);
//How do I trigger the navigation?!?!
expect(fakeMyRouteCreator).toHaveBeenCalledTimes(2);
基本上,我只想让StackNavigator导航。
从React组件中,您可以执行以下操作:
this.props.navigation.navigate("NestedNavigator")
但是,测试无法做到这一点,因为我无法访问props
。那我该怎么办呢?
注意:我尝试在发布之前简化代码,因为该路由有2-3个更高阶的组件,使得模拟更复杂。但是,这是不相关的,因为我只想知道如何触发导航器。