2016-11-21 35 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 } 
    ] 
}); 
相關問題