2016-12-14 13 views
5

मेरे पास है:कोणीय 2 यूनिट परीक्षण: टेस्टबैड में एक प्रदाता को ओवरराइड कैसे करें (सेवा के लिए यूनिट परीक्षण के लिए, एक घटक नहीं, सेवा निर्भरताओं के साथ)?

beforeEach(() => { 
     TestBed.configureTestingModule({ 
      providers: [ 
       DocumentsLoaderSvc, 
       { provide: MgrSvc, useClass: MockMgrSvc }, 
       { provide: URLLoaderSvc, useClass: MockURLLoaderSvcWhenData} 
      ] 
     }); 
    }); 

मैं कैसे, एक और नकली के साथ URLLoaderSvc ओवरराइड करते अपनी अनूठी आवश्यकता के साथ एक "यह" मामले में? क्या TestBed.overrideProvider जैसे कुछ है ... अभी, मेरे पास प्रत्येक का बयान है अपने स्वयं के "वर्णन" में, पहले से ही पहले।

+0

क्या आप अभी भी इस प्रश्न का उत्तर ढूंढ रहे हैं या आप इसे करने का कोई तरीका समझ चुके हैं? – vincecampanale

उत्तर

1

शायद आपकी सबसे अच्छी शर्त है कि विभिन्न परीक्षण मामलों की आवश्यकताओं के अनुरूप नकली कॉन्फ़िगर करने योग्य बनाएं। एक उदाहरण के रूप में यह रखें और useClass

let urlLoderSvc: URLLoaderSvc; 

beforeEach(() => { 
    urlLoaderSvc = new URLLoaderSvc(); 

    TestBed.configureTestingModule({ 
    providers: [ 
     DocumentsLoaderSvc, 
     { provide: MgrSvc, useClass: MockMgrSvc }, 
     { provide: URLLoaderSvc, useValue: urlLoaderSvc } 
    ] 
    }); 
}); 

अब आप अपने it परीक्षण मामलों में के बजाय useValue उपयोग करते हैं, तो आप सिर्फ जो चाहें करें करने के लिए urlLoaderSvc उदाहरण कॉन्फ़िगर कर सकते हैं।

संबंधित मुद्दे