如何使用玩笑和酵素测试此陈述

时间:2020-05-18 06:05:48

标签: javascript reactjs

在我们的代码中,我有两个语句

const { column, showTooltip, tooltipValue, data } = props;
const key = column.bindProperties[0].properties[0].name;

在测试中,此错误为

“ TypeError:无法读取未定义的属性'0'。”

此语句column.bindProperties[0].properties[0].name;的含义以及如何对其进行测试。

1 个答案:

答案 0 :(得分:0)

在JS中,您不能保证对象具有某些属性。

当您尝试访问column.bindProperties[0].properties[0].name时,column.bindPropertiescolumn.bindProperties[0].properties都是undefined-因此,您会收到错误消息。

您可以使用lodash's _.get()或使用多余的烦人验证密钥是否已定义:

const key = column
  && column.bindProperties
  && column.bindProperties[0]
  && column.bindProperties[0].properties
  && column.bindProperties[0].properties[0]
  && column.bindProperties[0].properties[0].name;

这将确保您的代码不会中断。如果未定义链中的一个表达式,则该表达式将停止求值,而结果仅为undefined