背景
最近写了一个自定义 React hook(参见文章:实用自定义 React hook:useClickOutside(点击元素外时触发 handler)),但在提交的时候发现,Jest 单元测试总是显示有那么几行代码没有覆盖到。
按理来说没覆盖就没覆盖,谁也不应该过度追求 100% 的代码覆盖度啊!但偏偏我们项目设置的最低覆盖度就是 100% ,如果覆盖不了这几行代码,改动就无法提交!
好吧。。但我翻来覆去检查了很多遍,明明全部情况都覆盖了啊!为什么会说那几行还没覆盖呢?
可选链
最后,我的怀疑落在了可选链(Optional Chaining)上,因为那几行刚好用到了这个特性。原本代码是这么写的:
if (!