2013-10-10 12 views
12

Podczas konfigurowania zestawu testów jednostkowych dla aplikacji kątowej za pomocą Karma/Jasmine, czy zalecane jest dołączenie js z funkcją modułu aplikacji config w plikach testu?Jak radzić sobie z funkcją konfiguracji modułu kątowego podczas testowania urządzenia?

Przeczytałem, że sugeruje się wykluczyć to z testów, jednak wydaje się to niezręczne, ponieważ często występuje krytyczna konfiguracja w funkcji config, która uniemożliwiłaby działanie aplikacji.

Jaka jest najlepsza praktyka w tym zakresie? Utworzyć fałszywą funkcję konfiguracyjną, która robi to samo w sposób "kpiący"?

biegnę całej tej kwestii siebie, ale chce zrozumieć szerszej strategii: How do unit test with angular-translate

+0

Jakieś informacje na ten temat? – jintoppy

Odpowiedz

3

W mojej aplikacji, skończyło się stosując następujące rozwiązanie:

zdefiniować moduł „appBase” ze wszystkimi funkcje config i run, które chcę uruchomić podczas testowania jednostkowego i utworzyć kolejny moduł "app", który deklaruje moduł "appBase" jako zależność i obejmuje wszystkie funkcje, których nie mam co uruchamiać, gdy testowanie jednostkowe . Następnie wszystkie moje testy jednostkowe korzystają z modułu "appBase", podczas gdy końcowa aplikacja korzysta z modułu "aplikacja". W kodzie:

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. 
     }); 
+0

Czy to nie znaczy, że jakiekolwiek kontrolery, dyrektywy itp., Które zdefiniowałeś w module 'app', byłyby niesprawdzalne? Czy korzystasz z innych modułów dla wszystkich swoich komponentów, a następnie deklarujesz je jako zależności od 'appBase'? – cfs