我正尝试对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
“
答案 0 :(得分:0)
您正在创建<CreateTemplateResults />
的浅层呈现,但从未通过actualComponent.setState(nextState)
。因此,当您尝试访问最后一行的状态时,由于状态为null
/ undefined
,它会引发错误。