Angular 2.0.0 - Testing “ imported by the module 'DynamicTestModule' ”

那年仲夏 提交于 2019-12-03 10:58:48

问题


I am having a problem in testing app.component.ts in Angular 2. I am using angular-cli. Whenever I run ng test, my app.component.spec.ts makes the console prompt with the error:

 Failed: Unexpected directive 'HomeModuleComponent' imported by the module 'DynamicTestModule'
 Error: Unexpected directive 'HomeModuleComponent' imported by the module 'DynamicTestModule'

I imported the HomeModuleComponent in TestBed

TestBed.configureTestingModule({
  declarations: [AppComponent],
  imports : [ HomeModuleComponent ]
});

Can anyone help me with this problem?


回答1:


HomeModuleComponent is Component not the Module, so it has to be in declarations:

TestBed.configureTestingModule({
  declarations: [AppComponent, HomeModuleComponent],
  imports : [ ]
});

and then you can create the component to test as,

TestBed.createComponent(AppComponent);



回答2:


In my test spec, by mistake I was importing a service instead of providing it. I was getting the same error.

Adding the service back inside providers array resolved my error.



来源:https://stackoverflow.com/questions/40014712/angular-2-0-0-testing-imported-by-the-module-dynamictestmodule

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!