2016-11-21 40 views
3

我的模板的特性“根”包含角2单元测试:无法读取未定义

<a [routerLink]="['/my-profile']" routerLinkActive="active"> 
    <i class="icon-user"></i>{{ 'MY_PROFILE' | translate }} 
</a> 

错误是因为routerLinkrouterLinkActive指令。

单元测试文件。

TestBed.configureTestingModule({ 
    imports: [ 
     MultilingualModule, CommonModule, 
     RouterTestingModule.withRoutes([ 
      { path: 'my-profile', component: MockComponent }, 
      { path: 'change-password', component: MockComponent }, 
     ]) 
    ], 
    schemas: [ NO_ERRORS_SCHEMA ], 
    declarations: [TopNavigationBarComponent, TestComponent,MockComponent], 
    providers: [ 
     { provide: LoginService, useValue: MockLoginService }, 
     { provide: Router, useClass: RouterStub } 
    ] 
}); 

回答

0

您是否尝试将APP_BASE_HREF作为提供程序添加?

{provide: APP_BASE_HREF, useValue : '/' } 
0

我面临同样的错误,问题是:既然你已经有了declarations: [...TestComponent...]它不是providers必要的补充。

你的单元测试文件应该是这样的:

TestBed.configureTestingModule({ 
    imports: [ 
    MultilingualModule, CommonModule, 
    RouterTestingModule.withRoutes([ 
     { 
     path: 'my-profile', 
     component: MockComponent 
     }, 
     { 
     path: 'change-password', 
     component: MockComponent 
     }, 
    ])], 
    schemas: [ NO_ERRORS_SCHEMA ], 
    declarations: [TopNavigationBarComponent, TestComponent, MockComponent], 
    providers: [ 
    { provide: LoginService, useValue: MockLoginService } 
    ] 
}); 
相关问题