如何在Karma/Jasmine中检查控制台日志?

如何在Karma/Jasmine中检查控制台日志?,jasmine,phantomjs,karma-runner,Jasmine,Phantomjs,Karma Runner,假设我有一个要测试的函数: var测试=函数(){ console.log('words!'); }; 我会写这样的东西 define('test()',function(){ 它('将“单词!”打印到屏幕',函数(){ test(); expect().toContain('words!');//TODO } } 但是我不知道如何查看控制台日志,或者这是否可行。最好是在任何浏览器中,或者至少在PhantomJS中都可以这样做。您可以创建spy on console.log函数。代码可能看起

假设我有一个要测试的函数:

var测试=函数(){
console.log('words!');
};
我会写这样的东西

define('test()',function(){
它('将“单词!”打印到屏幕',函数(){
test();
expect().toContain('words!');//TODO
}
}

但是我不知道如何查看控制台日志,或者这是否可行。最好是在任何浏览器中,或者至少在PhantomJS中都可以这样做。

您可以创建spy on console.log函数。代码可能看起来像

描述(“日志报告”,函数(){
beforeach(函数(){
spyOn(window.console,'log');
});
它('应将日志消息打印到控制台',函数(){
test();
expect(window.console.log).toHaveBeenCalled();
})
});
在这个例子中,您将知道您的console.log函数被调用了。这正是您需要知道的。您不想将记录的消息与预期值进行比较,因为您不会对代码进行单元测试,而是对window.console.log函数本身进行单元测试,您没有编写该函数;)可以调用“.and.callFake(函数(){do something})”。在这种情况下,您将执行一些操作,而不是实际的console.log调用,例如检查您的值