【发布时间】:2013-12-09 23:33:20
【问题描述】:
对于 AngularJS 应用程序,建议使用 $log 服务而不是 console.log。这种日志记录的一个常见用例是在运行测试时看到调试打印。问题是,默认情况下,angular-mocks 将 $log 静音,将其替换为模拟。好吧,我有时确实需要测试我的调试打印,但我只需要更频繁地查看它。问题是,默认行为坚持使用虚拟日志记录,我什至看不到恢复到真实 $log 的正确方法。我制作了一个 jsfiddle 示例来说明它,尝试在查看 devtools 控制台http://jsfiddle.net/ivan4th/EnvL9/ 时运行它
var myApp = angular.module('myApp', []);
describe('myApp', function () {
var element, rootScope;
beforeEach(module('myApp'));
it('does something', inject(function ($log) {
$log.log("this message gets eaten by angular-mocks");
console.log("this message is visible though");
}));
});
第一条消息被跳过,而第二条消息按预期显示。 为什么会使用这种奇怪的行为,除了不使用 $log 之外,还有什么方法可以解决它?
【问题讨论】:
标签: angularjs testing logging mocking