我具有以下提供程序的TestBed配置:
{
provide: ActivatedRoute,
useValue: {
queryParams: of({fooObservable: true})
}
},
如何编写一个访问此查询参数并测试它是真还是假的茉莉花间谍?我已完成以下操作,但无法对其进行测试。
fooSpy = spyOn(this.ActivatedRoute.queryParams, 'queryParams');
答案 0 :(得分:2)
这很棘手。这是我的操作方式:
const spyParamMap = jasmine.createSpyObj({get: null});
const mockActivatedRoute = { paramMap: of(spyParamMap) };
然后在提供程序数组中:{ provide: ActivatedRoute, useValue: mockActivatedRoute }
最后在测试中:
spyParamMap.get.and.returnValue('tFilename');
fixture.detectChanges();
在我的ngOnInit()
中,我有以下代码段:
this.route.paramMap.subscribe(params => {
this.dlFilename = params.get('download');
if (this.dlFilename) {
// logic for if a filename is passed
}
所以我可以将结果传递到params.get()
并在if
内测试我的逻辑。
我希望这会有所帮助。