我正在尝试编写一些测试,ngInit()
中有一些条件逻辑依赖于ActivatedRoute.params
来获取值。
我的模拟为我的值提供了一个observable,但是当我调试时,未设置指定的ActivedRoute。
我有一个不同组件的不同测试。
我的注射如下:
beforeEach(async(() => {
TestBed.configureTestingModule({
imports:[
FaqsModule,SharedModule.forRoot(), RouterTestingModule
],
declarations: [ ],
providers:[
{ provide: AppService, useValue: new MockAppService() },
{ provide: DataService, useValue: mockDataService },
{ provide: NotificationService, useValue: mockNotificationService },
{ provide: FaqsService, useValue:mockFaqsService},
{ provide: ActivatedRoute, useValue: {queryParams: Observable.of({id:1}) }}
]
})
.compileComponents();
fixture = TestBed.createComponent(FaqEditPageComponent);
component = fixture.componentInstance;
}));
我试过了:
- 不包括此提供商
- 模拟并提供为useClass
- 使用AngularDocs的覆盖