我有一个看起来像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行
开玩笑的原因是什么?我该如何解决?
答案 0 :(得分:1)
这里确实有三个分支:if
被触发,或者else if
,或者都不被触发。
即使在这种情况下后一种情况为空(因为没有else
语句),您仍然需要进行一次测试,以不触发if
或else if
来完全覆盖。 / p>