2017-09-22 168 views
0

我想問一下在Angular4中它如何與依賴注入以及它如何用於模擬單元測試中的服務。Angular2依賴注入和單元測試

首先,我沒有檢查任何Angular2測試框架,在這一點上,我想更多地瞭解一般概念。

爲什麼DI在Angular中被稱爲DI?

當您在要注入的構造函數中列出服務時,必須將引用導入到文件中。

當您在提供者中註冊服務時,它只是一個類名。我沒有看到任何接口類配對的可能性。

我無法抗拒,但我發現這種行爲與靜態類沒有任何區別。

以某種方式模擬單元測試服務的技術是什麼?

非常感謝所有的輸入:)

+0

你在問之前是否檢查過https://docs.angularjs.org/guide/di和https://angine.io/guide/testing章節? SO是有幫助的社區,但沒有任何研究的問題一般不受讚賞。關於DI,正在使用'ClassName'標記注入構造函數的東西本身不是類,它可以是類實例,另一個類或另一個類實例。 – estus

+0

是的,我做了一些研究,谷歌沒有給我任何有趣的東西......提供的鏈接是以前版本的Angular。 –

+0

哦,對不起,錯過了第二個。但我不僅對單元測試感興趣,而且對DI一般也不感興趣。在那個話題上,我真的沒有找到任何東西,只是功能的基本描述。提供參考的東西可能是第一個有趣的東西,將看看它。 –

回答

0

什麼會以某種方式嘲笑服務單元測試的TECHNIC?

您可以在測試平臺中聲明服務後,將服務注入您的測試。一個例子:

it('should mock videos', inject([VideoService], (videoService: VideoService) => { 
    videos = [ 
     { id: 0, name: 'Superman' }, 
     { id: 1, name: 'Superman part 2' } 
     ] 
    spyOn(videoService, 'videos').and.returnValue(videos); 
    fixture.detectChanges(); 
    expect(component.getVideoOne()).toContain(Superman); 

    });