Pra*_*tha 6 javascript reactjs jestjs
我有一个简单的 if-else 语句
if(this.props.params.id){
//do something
}
Run Code Online (Sandbox Code Playgroud)
现在,这在浏览器中运行良好。如果参数中有 id,则进入 if 子句;如果没有 id,则不进入 if 子句。
现在,在用 jest 编写测试时,当未定义 id 时,它会抛出错误:“无法读取未定义的属性'id'”为什么会发生这种情况,不应该将其视为 false 吗?它在浏览器中运行良好,只是在测试时会抛出错误。
小智 2
如果 id 本身未定义,那么您的测试将按预期工作(尽管有更好的编写方法)
您遇到的问题是由于 this.props.params 未定义。在这种情况下,您正在尝试访问不存在的属性。
要解决这个问题,您需要检查 params 和 id 是否都已定义。
你可以这样做:
if (typeof this.props.params !== 'undefined' && this.props.params.id !== 'undefined') {
//do something
}
Run Code Online (Sandbox Code Playgroud)
最好使用 typeof 检查未定义的变量,因为如果变量的计算结果为 false,则 if 语句可能会失败。
归档时间: |
|
查看次数: |
4577 次 |
最近记录: |