Как перемещаться с помощью StackNavigator из теста - PullRequest
0 голосов
/ 27 апреля 2018

В моем проекте 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 компонента более высокого порядка, делая макет более сложным. Однако это не имеет значения, поскольку я просто хочу знать, как вызвать навигатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...