Angular 单元测试中未采用else路径

Angular 单元测试中未采用else路径,angular,typescript,unit-testing,jasmine,karma-coverage,Angular,Typescript,Unit Testing,Jasmine,Karma Coverage,我正在研究angular 6 我在下面的代码中没有任何其他语句。但由于未采用其他路径,我无法覆盖分支。在这种情况下,我需要做什么才能获得100%的分支覆盖率 为了得到完整的覆盖率报告,代码需要最终到达(此处不明确存在)else-路径。为此,传入一个falsy参数,如 component.getHeaderDocumentList(false); expect(false).toEqual(false); // This line is optional. Most test suites req

我正在研究angular 6

我在下面的代码中没有任何其他语句。但由于未采用其他路径,我无法覆盖分支。在这种情况下,我需要做什么才能获得100%的分支覆盖率


为了得到完整的覆盖率报告,代码需要最终到达(此处不明确存在)
else
-路径。为此,传入一个
falsy
参数,如

component.getHeaderDocumentList(false);
expect(false).toEqual(false); // This line is optional. Most test suites require some kind of assertion in each test.
现在,您的测试套件应该报告这两个分支


最后一个解决方案是在if案例之前添加
/*else*/
。这将告诉报道记者有效地忽略其他路径


您是否尝试将计算结果为false的输入传递给if语句并绕过它?好主意!但在某些情况下,我无法解决这个问题。无论如何,到目前为止,80%已经足够了。还有一个问题:你听说过关于Hm的事吗,这很奇怪。一旦您再次运行测试,它应该停止抱怨。最后一个解决方案是在if案例之前添加
/*else*/
。这将告诉coverage reporter有效地忽略else路径。如果假/空文档列表的预期输出是
headerdocumentdetails
没有更改,则这是一个有效的测试。
component.getHeaderDocumentList(false);
expect(false).toEqual(false); // This line is optional. Most test suites require some kind of assertion in each test.