function - 如何模拟状态数据以传递给函数?
问题描述
我正在尝试测试一个传递数据的函数,以便使用 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"
}
你的测试将通过
推荐阅读
- java - 删除主题后的 Broker 磁盘使用情况
- css - HTML5 + CSS:DIV左右浮动
- c# - 多对多自我参考
- tomcat - Tomcat 问题:我尝试部署 WAR 文件,但收到此消息:源服务器未找到目标资源的当前表示
- python - Python在读取JSON文件时抛出错误
- swift - 从其他视图控制器执行功能
- c# - 如何使用数据网格视图列值按升序排序?
- javascript - 如何在 JS 中映射对象数组并为每个对象获取网络数据?
- r - 如何使用 r 中的 if-else 循环替换时间序列数据的缺失值
- python - 如何从使用 plot_date 生成的图形中删除点?