我正在使用JSCover运行我的Jasmine SpecRunner,它检查这种类型的代码片段:
var MyRootObject = MyRootObject || {};
我的目标是将覆盖率提高到100%,但我不确定如何最好地覆盖这种初始化MyRootObject的方法。
此模式在每个库javascript文件的开头使用,以确保加载文件的顺序不重要(内部的函数和变量是$ .extend'ed)。
问题基本上是在SpecRunner中加载此脚本的第一次也是唯一一次,它只运行此测试的一侧,而另一条路径未经测试。
答案 0 :(得分:1)
在挖掘之后,我找到了一个对我有用的解决方案,当然,你的里程可能会有所不同:
var MyRootObject = MyRootObject || {};
$.extend(true, MyRootObject, {...});
我已替换为:
var MyRootObject = $.extend(true, MyRootObject, {...});
在JQuery内部,如果目标(MyRootObject)为null或未定义,它会自动将函数内的目标赋值为{}。通过使用外部库(我已经使用),我不再有一个我没有遵循的条件路径,因为它被委托给JQuery库。