2013-10-10 3 views
12

Wird beim Einrichten einer Komponententestsuite für eine eckige Anwendung mit Karma/Jasmine empfohlen, die js mit der Funktion config des App-Moduls in die Testdateien aufzunehmen?Wie geht man mit der Konfigurationsfunktion des Winkelmoduls beim Komponententesten um?

Ich habe gelesen, dass es vorgeschlagen wird, dies aus dem Test auszuschließen, aber das scheint umständlich, weil es oft kritische Einrichtung, die in der config-Funktion passiert, die die Anwendung funktionieren würde verhindert.

Was ist die beste Praxis dabei? Erstellen Sie eine Mock-Config-Funktion, die das gleiche auf eine "verspottete" Art und Weise macht?

ich mich über dieses Thema renne, wollen aber die breitere Strategie verstehen: How do unit test with angular-translate

+0

Irgendwelche Updates zu diesem Thema? – jintoppy

Antwort

3

In meiner Anwendung, landete ich die folgende Lösung mit bis:

Definieren Sie ein „appBase“ Modul mit allen die config und run Funktionen, die ich beim Komponententest ausführen und ein anderes "App" -Modul erstellen möchte, das "appBase" -Modul als Abhängigkeit deklariert und alle config und run-Funktionen enthält, die ich nicht ausführen kann, wenn Unit-Tests . Dann verwenden alle meine Komponententests das Modul "appBase", während die letzte Anwendung das Modul "app" verwendet. In code:

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

Bedeutet das nicht, dass Controller, Direktiven usw., die Sie im Modul "app" definiert haben, nicht testbar sind? Verwenden Sie für alle Ihre Komponenten andere Module und deklarieren Sie diese als Abhängigkeiten von 'appBase'? – cfs

Verwandte Themen