У меня есть служба регистрации углов, которая перезаписывает console.log и другие в зависимости от постоянной среды, упрощенного примера:
if(!DEBUG_ENV) {
console.log = function(){};
}
Поэтому мой вопрос заключается в том, как я могу проверить Jasmine, что console.log фактически перезаписывается этой пустой функцией службой. Я издевался над своей константой и вводил мою службу, но я не могу понять, как проверить, перезаписывается ли console.log Жасмин.
Я решил это, высмеивая $ window, а затем перезаписываю $ window в моей службе, а не переписывая консоль [как угодно] следующим образом:
$provide.value('$window', {
console: {
log: function(){return 'enabled'};
}
});
Затем я ввел это в мое обслуживание следующим образом:
inject(['$window', function($window) {
_window = $window;
}]);
Тогда в моем служении я мог бы сделать следующее:
if(!DEBUG_ENV) {
$window.console.log = function(){return 'disabled'};
}
И, наконец, я мог проверить, произошло ли все, как предполагалось, путем проверки того, что мой инъецированный макет из $ window вернул либо "включен", либо "отключен".
expect( _window.console.log() ).toEqual('disabled');