2017-04-06 37 views
0

在我的組件中,我試圖設置測試,模板使用了一些第三方模塊,例如ng2-bootstrap模塊alertModuledropDownModule帶模塊的測試組件我不想包含

它們與我試圖爲此特定組件設置的測試無關。但是如果我不包含它們,我的測試會因爲未知的指令等導致HTML編譯失敗而失敗。

有什麼辦法可以創建虛假的「空」模塊導入,或者甚至更好地不關心它們,並使其角落忽略第三方模塊所以我不必將它們包含在testBed他們不會在模板上呈現,但我不在乎,因爲我的測試不涉及他們)。

回答

1

如果有一些你並不需要聲明,你可以嘲笑他們,或使用NO_ERRORS_SCHEMA類似錯誤,並在角DOC這樣建議的組件:

beforeEach(async(() => { 
TestBed.configureTestingModule({ 
declarations: [ AppComponent, RouterLinkStubDirective ], 
schemas:  [ NO_ERRORS_SCHEMA ] 
}) 

直視https://angular.io/docs/ts/latest/guide/testing.html#!#shallow-component-test爲更多信息:)

+0

服務怎麼樣?我包括很多服務,尤其是供應商。例如:toastr服務。我必須將它們全部存根嗎? – BlackHoleGalaxy

+0

如果你願意,你也可以使用真實的服務,但通常情況下,你將它們存根,因爲測試獨立服務非常簡單(或者如果供應商服務已經過測試)。但是在測試牀中存根服務更容易.configureTestingModule()配置對象提供者[]你可以做{提供:RealClassService useValue:stubbedVarPreviouslyDeclared} –