我遇到了问题,ngMocks
并且$log
在那里被嘲笑的提供者。
任何时候$log
在我的代码中使用,测试都会失败,因为模拟$log
失败(第 295 行):
var $log = {
log: function() { $log.log.logs.push(concat([], arguments, 0)); },
warn: function() { $log.warn.logs.push(concat([], arguments, 0)); },
info: function() { $log.info.logs.push(concat([], arguments, 0)); },
error: function() { $log.error.logs.push(concat([], arguments, 0)); },
debug: function() {
if (debug) {
$log.debug.logs.push(concat([], arguments, 0));
}
}
};
as$log.info.logs
看起来是未定义的,而不是数组。
我注意到ngMock
以这种方式更改日志功能:
info: function() {
$log.info.logs = $log.info.logs || [];
$log.info.logs.push(concat([], arguments, 0));
},
让我的测试通过。
知道为什么会发生这种情况吗?我认为这不是一个错误,ngMock
因为我没有找到任何参考。