如何模拟状态数据以传递给函数?

问题描述 投票:0回答:1

我正在尝试测试传递数据的函数,以便使用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
     });
 }

我查看了其他堆栈溢出文章和文档,但未找到与此相关的任何信息。任何帮助都会很棒

function testing jestjs state enzyme
1个回答
0
投票

在测试中,您将错误的参数传递给组件updateProperties:实际上,该方法期望event是一个对象,但是您在测试中传递了数组。

 const event = [
    {
      id: 1,
      eventname: "Coachella",
      length: "7 days
    },
  ];

您只需要传递一个对象,没有[...]

const event = { 
  id: 1, 
  eventname: "Coachella", 
  length: "7 days" 
} 

您的考试将通过

© www.soinside.com 2019 - 2024. All rights reserved.