Подтвердить что ты не робот

Как работать с функцией конфигурации модуля angular при модульном тестировании?

При настройке пакета unit test для приложения angular с использованием Karma/Jasmine рекомендуется ли включить в тестовые файлы функцию js с модулем app config?

Я читал, что предлагается исключить это из тестирования, однако это кажется неудобным, потому что часто существует критическая настройка, которая происходит в функции config, которая препятствует работе приложения.

Какая лучшая практика вокруг этого? Создайте макетную конфигурационную функцию, которая делает одно и то же в "насмешливой" манере?

Я сам сталкиваюсь с этой проблемой, но хочу понять более широкую стратегию: Как unit test с angular -транслятом

4b9b3361

Ответ 1

В моем приложении я решил использовать следующее решение:

Определите модуль "appBase" со всеми функциями config и run, которые я хочу запустить при модульном тестировании, и создадим еще один модуль "app", который объявляет модуль "appBase" как зависимость и включает в себя все config и run, которые я не запускаю при модульном тестировании. Затем все мои модульные тесты используют модуль "appBase" , в то время как в последнем приложении используется модуль "app". В коде:

angular.module('appBase', ['dependencies'])
       .config(function() {
            // This one will run when unit-testing. Can also set-up mock data
            // that will later be overridden by the "app" module
        });

angular.module('app', ['appBase'])
       .config(function() {
            // This function will only run in real app, not in unit-tests.
       });