编写单元测试用例时箭头功能和普通功能有什么区别?

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

我正在创建一个react组件,并且在此组件中,我将箭头函数用于类方法和生命周期挂钩。我正在为同一文件编写单元测试用例。但是问题是当我用旧的javascript方式编写生命周期挂钩时,例如

componentDidMount(){
  ...Here
}

并运行测试范围,然后此生命周期方法将自动获得覆盖。但是当我这样写的时候

componentDidMount = () => {
  ...Here    
}

并且运行代码覆盖率,单元测试中没有涉及它,并显示“声明不包含”。

所以我的问题是,编写单元测试用例时,这两种方式有什么区别?

javascript reactjs unit-testing jestjs enzyme
1个回答
0
投票

有很大的区别,第一个创建方法,第二个创建属性而不是方法,因此它在原型中不存在。

您可以通过在构造函数中绑定它来使用它,但是生命周期事件中的箭头功能会损害性能。

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