如何使用StackNavigator从测试

时间:2018-04-27 18:31:33

标签: reactjs react-native jestjs enzyme

在我的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个更高阶的组件,使得模拟更复杂。但是,这是不相关的,因为我只想知道如何触发导航器。

0 个答案:

没有答案