开玩笑的覆盖范围仅以一种奇怪的方式错过了if条件线-为什么以及如何解决

时间:2019-03-04 20:01:57

标签: javascript jestjs enzyme

我有一个看起来像index.js的

...
[line 69] if A:
[line 70]    foo()
[line 71] else if B:
[line 72]    bar()

我已经为69-70行编写了一个测试,证据是,如果我将其注释掉,纱线测试--coverage将显示69、70行缺失。

但是,即使进行了此测试,覆盖范围仍抱怨缺少第69行

我注意到的另一件事是,如果我将if条件交换给

...
[line 69] if B:
[line 70]    bar()
[line 71] else if A:
[line 72]    foo()

仍然缺少第69行

开玩笑的原因是什么?我该如何解决?

1 个答案:

答案 0 :(得分:1)

这里确实有三个分支:if被触发,或者else if,或者都不被触发。

即使在这种情况下后一种情况为空(因为没有else语句),您仍然需要进行一次测试,以不触发ifelse if来完全覆盖。 / p>