2016-11-30 2 views
0

ich ein Modul mit einigen Leistungen müssen den Konstruktor geladenWie Unit-Test, ob ein Test in Angular2 Jasmine Test geladen wird oder nicht

export class AppModule { 
    constructor(
                private oauth: OAuthService, //HOW TO TEST THIS WHETHER ITS LOADED OR NOT? 
                private translate: TranslateService 
    ){ 

        let browserLang = navigator.language; 
         
        if(browserLang.length == 2) { 
            browserLang = browserLang == 'en' ? 'en-US' : browserLang; 
            browserLang = browserLang == 'de' ? 'de-AT' : browserLang; 
        } 
        translate.use(browserLang || 'en-US'); 
    } 
} 

Wie ich Unit-Test tun, um zu prüfen, ob Instanzen ofOAuthService und TranslateService bekommen mit Angular2 Jasmine in AppModule geladen?

+0

Was haben Sie jetzt als Testkonfiguration? Was hast du bisher versucht? – peppermcknight

Antwort

0

Eine Möglichkeit zum Testen, ob ein NgModule einen Dienst bereitstellt, besteht darin, eine Testkomponente zu erstellen, die Ihren Dienst über Konstruktor einfügt, und dann TestBed.configureTestingModule zu verwenden, um ein Testmodul zu erstellen, das Ihr Modul importiert und die Testkomponente deklariert. Wenn Ihr Modul den OAuthService unter providers angibt, sollten Sie den Dienst in Ihrer TestComponent erhalten.

Eine andere Sache zu beachten: Dies ist nicht die empfohlene Möglichkeit, ein Modul in angular2 zu deklarieren und zu verwenden. Normalerweise würden Sie den @ NgModule Decorator verwenden, um zu definieren, was Ihr Modul importiert, exportiert, bereitstellt und deklariert. Schauen Sie sich die official docs on NgModule für einige Beispiele an.

Verwandte Themen