макет this.props.dispatch, вложенный в маршрутизатор и компоненты провайдера - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь написать модульный тест для моего кода, который вложен в провайдера в маршрутизаторе.Мой компонент использует redux, вызывая this.props.dispatch (ACTION).Чтобы проверить это, мне нужно смоделировать this.props.dispatch в моем тесте, но я не могу этого сделать.компонент Маршрутизатор, который заставляет Login игнорировать любую пропущенную пропущенную команду.Если вы посмотрите на закомментированную строку кода, она работает - единственное отличие состоит в том, что компонент Login не вложен в Provider и Router в этом примере.

Поэтому мой вопрос, есть ли что-то дополнительное, я долженделать, если я хочу макетировать реквизит вложенного компонента, как это?

describe("Pokedex", () => {
    beforeEach(() => {
        var dispatch = jest.fn();
        var props = {
            dispatch
        };
        // wrapper = mount(<Login {...props} />); Correctly mocks dispatch
        wrapper = mount(
            <Provider store={store}>
                <Router >
                    <Login {...props} />
                </Router>
            </Provider>
        );
        wrapper.setState({ loading: false });
        store.clearActions();
    });

Часть компонента входа:

export class Login extends PureComponent {

    constructor(props) {
        super(props);
        console.log("Props", this.props.dispatch);

        this.props.dispatch(userActions.resetError());

        this.state = {
            username: '',
            password: ''
        };

/** Extra code omitted **/

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