【发布时间】:2021-02-03 13:54:05
【问题描述】:
我希望能够测试从一个视图传递到另一个视图的参数。我想测试一下参数是否存在以及参数是否与我提供的模拟测试数据匹配。
我对单元测试很陌生,在设置与激活的路由相关的测试并传递参数方面做了很多阅读。我认为我坚持的一点是“期望”。它给了我一个错误
Argument of type '{ urn: string[]; }' is not assignable to parameter of type 'Expected<Observable<Params>>'
组件
export class SearchComponent implements OnInit {
constructor(private route: ActivatedRoute, private router: Router) {
this.getParam();
}
ngOnInit() {
}
getParam():void {
this.route.queryParams.subscribe(params => {
console.log(params["urn"]);
});
}
}
规格
providers: [
HttpClient,
{
provide: ActivatedRoute,
useValue: {
queryParams: of({
urn: '123'
})
}
}
],
...
it('test queryParam in route', () => {
const activatedRoute: ActivatedRoute = fixture.debugElement.injector.get(ActivatedRoute);
activatedRoute.queryParams = of({ urn: '123' });
fixture.detectChanges();
// tick();
expect(activatedRoute.queryParams).toEqual({ urn: ['123'] }); // this line giving me trouble
});
如果有人可以帮我看看我做错了什么 - 这是stackBlitz I came up with to demo
【问题讨论】:
标签: angular unit-testing jasmine karma-jasmine