對於AngularJS應用程序,推薦使用$ log服務而不是console.log。這種日誌記錄的一個常見用例是在運行測試時看到調試打印。問題是,angular-mock默認默認將$ 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");
}));
});
第一條消息被跳過,而第二個顯示爲預期。 爲什麼使用這種奇怪的行爲,有沒有辦法解決它,除了不使用$日誌?