我正在尝试测试传递数据的函数,以便使用Jest和Enzyme更新状态,但不确定如何引用事件数组中的值?我希望能够访问id,event和length,但似乎event.id,event.eventname event.length不起作用。
it("should update state properties using updateProperties()", () => {
const event = [
{
id: 1,
eventname: "Coachella",
length: "7 days
},
];
const wrapper = shallow(<EditEvent event={event} />);
wrapper.instance().updateProperties(event);
expect(wrapper.state()).toEqual({
id: 1,
eventname: "Coachella",
length: "7 days
});
});
这是我正在测试的updateProperties函数
updateProperties(event) {
this.setState({
id: event.id
eventname: event.eventname
length: event.length
});
}
我查看了其他堆栈溢出文章和文档,但未找到与此相关的任何信息。任何帮助都会很棒
在测试中,您将错误的参数传递给组件updateProperties
:实际上,该方法期望event
是一个对象,但是您在测试中传递了数组。
const event = [
{
id: 1,
eventname: "Coachella",
length: "7 days
},
];
您只需要传递一个对象,没有[...]
:
const event = {
id: 1,
eventname: "Coachella",
length: "7 days"
}
您的考试将通过