Сервис углового тестирования, который перезаписывает console.log (Jasmine)

0

У меня есть служба регистрации углов, которая перезаписывает console.log и другие в зависимости от постоянной среды, упрощенного примера:

if(!DEBUG_ENV) {
    console.log = function(){}; 
}

Поэтому мой вопрос заключается в том, как я могу проверить Jasmine, что console.log фактически перезаписывается этой пустой функцией службой. Я издевался над своей константой и вводил мою службу, но я не могу понять, как проверить, перезаписывается ли console.log Жасмин.

Теги:
unit-testing
karma-jasmine
jasmine

1 ответ

0

Я решил это, высмеивая $ 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');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню