2017-04-06 45 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} –