如何使用摩卡茶和酶对道具的状态进行单元测试?

时间:2019-03-06 21:52:21

标签: javascript redux mocha enzyme chai

我正尝试对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不是nullundefined

1 个答案:

答案 0 :(得分:0)

您正在创建<CreateTemplateResults />的浅层呈现,但从未通过actualComponent.setState(nextState)。因此,当您尝试访问最后一行的状态时,由于状态为null / undefined,它会引发错误。

shallow().setState