我因自己的问题陷入困境... https://embed.plnkr.co/UparfJDomOECGJfWSbqA/
简短:我无法测试我的组件,它似乎无法通过container.component.spec.ts:43-但是如果没有fixture.detectChanges(),ngAfterViewInit将无法启动。我看不到我在做什么错。
我想使用指令属性将组件动态加载到ng-template中,并且该解决方案确实有效,但是我无法为其编写有效的测试。既然我对单元测试还很陌生...那是我什至应该测试的东西-我认为是的。(是的,我阅读了angular.io测试指南,以及其他一些;-))错误TypeError: Cannot read property 'viewContainerRef' of undefined似乎是指向@ViewChild没有ViewChild的人。
测试模块看不到,MenuDirective因为您忘记了从假模块中导出它:
@NgModule({
declarations: [
MenuComponent,
MenuDirective,
],
exports: [MenuDirective], <== add this
entryComponents: [MenuComponent]
})
class FakeEntryComponents {}
Run Code Online (Sandbox Code Playgroud)
似乎您要查询MenuComponent
menuElement = fixture.debugElement.query(By.directive(MenuComponent))
Run Code Online (Sandbox Code Playgroud)
也可以看看