我正在创建一个 react 组件,在这个组件中我使用箭头函数来实现类方法和生命周期 Hook 。我正在为同一文件编写单元测试用例。但问题是, 当我用旧的 JavaScript 方式编写生命周期钩子(Hook)时,例如
componentDidMount(){
...Here
}
并运行测试覆盖率,然后该生命周期方法将自动覆盖。但是当我这样写时
componentDidMount = () => {
...Here
}
并运行代码覆盖率,它未在单元测试中覆盖并显示“语句未覆盖”。
所以我的问题是,这两种方式在编写单元测试用例时有什么区别?
最佳答案
有一个很大的区别,第一个创建了一个方法,第二个创建了一个属性而不是方法,所以它不存在于原型(prototype)中。
您可以通过在构造函数中绑定(bind)它来使用它,但生命周期事件中的箭头函数会损害性能。
关于javascript - 编写单元测试用例时箭头函数和普通函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60187528/