【发布时间】:2014-11-18 16:33:50
【问题描述】:
我的网站有
$rootScope.$broadcast('task1-completed', service.options.language);
然后调用
$rootScope.$on('task1-completed', function() {
if (!$rootScope.$$phase) {
$rootScope.$digest();
}
});
单元测试适用于$broadcast 和$on,但我如何对内部函数进行单元测试? Aka make $rootScope.$$phase false 以便 $digest() 被调用...
我试图模拟整个 $rootScope 对象,但无法以这种方式工作。这更多是出于代码覆盖的目的,因为单元测试都运行良好。任何帮助表示赞赏!提前致谢!
【问题讨论】:
-
什么是在没有
$digest的情况下发出 Angular 事件?您确定在您的生产代码中调用了$rootScope.$digest()ever 吗? -
@DavinTryon 我不能 100% 确定这条特定的线路是否会在 prod 中被调用,但冗余不会伤害任何人,对吧?
-
为什么要维护和测试从未使用过的代码?
-
@DavinTryon 比抱歉更安全。
标签: angularjs unit-testing jasmine chutzpah