Как мне протестировать простой компонент React, который импортирует основной магазин mobx? - PullRequest
0 голосов
/ 04 июля 2019

У меня есть файл RootStore, который создает все мои хранилища mobx:

class RootStore {
    @observable stores = {};

    constructor() {
        this.stores.uiStateStore = new UiStateStore(this);
        ...
    }
}

export default new RootStore();

У меня также есть базовый компонент React, который импортирует RootStore:

import React from 'react';
import RootStore from '../../Stores/RootStore';
import { Button } from '../Button';

const CloseButton = props => {
    const handleClose = ev => RootStore.stores.uiStateStore.closeModal();
    return <Button icon="Close" onClick={handleClose} {...props} />;
};

export default CloseButton;

I'mдовольно плохо знаком с mobx, а также неопытен в тестировании.Я пытаюсь написать несколько базовых тестов, используя Jest и Enzyme для проверки правильности визуализации компонента:

it('should render correctly with no props', () => {
    const component = shallow(<CloseButton/>);
    expect(component).toMatchSnapshot();
});

Моя проблема в том, что, поскольку компонент импортирует RootStore, он создает экземпляры всех других хранилищ, что явноне эффективен.

Как лучше всего протестировать этот компонент?

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