Как провести модульное тестирование состояния реквизита, используя мокко чай и фермент? - PullRequest
0 голосов
/ 07 марта 2019

Я пытаюсь выполнить модульный тест onClick Очистить состояние реквизита в моем компоненте.

Я пытался сделать это так:

props = {
    attributeTableData: data,
    clearMessage: onClickMethod,
    reset: () => { },
    resetAttributeTable: () => { },
    statusMessage: {
        messageType: 'message-success',
        userMessage: 'Template has been saved successfully. Please wait …see your results display with the latest'
    },
    submitTemplateCreationStatus: () => { },
    templateAttributeFormData: () => { },
    templateFormSubmission: true,
    templateAttributeFormSubmission: true,
    templateFormData: () => { },
    userRoles: new Set(['admin'])
};
let emptyStatusMessage = {};
actualComponent = shallow(<CreateTemplateResults { ...props } />);
actualComponent.instance().resetForms();
expect(onClickMethod.called).to.be.true;
expect(actualComponent.state('statusMessage')).to.eql(emptyStatusMessage)

Но я получаю:

"TypeError: ShallowWrapper :: state (" statusMessage ") требует, чтобы state не будет null или undefined "

1 Ответ

0 голосов
/ 07 марта 2019

Вы создаете поверхностный рендер <CreateTemplateResults />, но никогда не пропускаете actualComponent.setState(nextState). Поэтому, когда вы пытаетесь получить доступ к состоянию в последней строке, оно выдает ошибку, потому что состояние null / undefined.

неглубоко (). SetState

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