我正试图在我的测试中模拟路由器。我按照this answer中给出的步骤进行了操作,但仍然出现错误
'无法读取null'
的属性'outlet'
这就是我的尝试:
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [RouterTestingModule.withRoutes([
{path:'profile/login',component:ProfileLoginComponent}]
)],
declarations: [ ProfileLoginComponent ],
providers: [
FormBuilder,AuthModel
],
schemas: [NO_ERRORS_SCHEMA]
})
.overrideComponent(ProfileLoginComponent, {
set: {
providers: [
{provide: AuthModel, useClass: MockAuthModel}
],
}
})
.compileComponents();
}));
如果我在模板中使用 routerLink 和 routerLinkActive 删除代码,那么测试用例就可以正常运行。我哪里出错?
答案 0 :(得分:0)
我设法解决了这个问题。我也在另一个post回答了这个问题。
我发现当
routerLink
指向a时会发生此错误 null变量。就我而言,我称之为favoriteUrl
的财产 由于隔离测试,分配给routerLink
的值为null 环境。所以我手动为该属性分配了一个值beforeEach
功能,这解决了问题,至少对我而言。