gpt4 book ai didi

angular - 如何对使用 router.paramMap 的 Angular 4 组件进行单元测试

转载 作者:太空狗 更新时间:2023-10-29 17:04:11 28 4
gpt4 key购买 nike

我是 Angular 4 的新手,正在尝试通过单元测试测试 Angular 4 功能 router.paramMap 之一,以休闲方式读取路由参数并在我的应用程序中按预期工作。

constructor(private router:Router, private actRoute:ActivatedRoute) {
}

ngOnInit() {
this.router.paramMap.subscribe(params => {
params.get(id);
})
......
}

但是在运行单元测试时,我收到错误消息,提示无法调用未定义的订阅方法,即使我正在传递传递的路由参数,如下所示。

{
provide: ActivatedRoute,
useValue: { params: Observable.of({id: 1}) }
}

请推荐

最佳答案

您需要提供paramMap 而不是paramsparamMap 应该是来自 @angular/routerParamMap 类型,所以普通对象可以转换为 ParamMap 使用来自 @angular/routing 的方法 convertToParamMap()

您可以像下面这样提供模拟 ActivatedRoute:

import { convertToParamMap} from '@angular/router';
....
.....

{
provide: ActivatedRoute,
useValue: { paramMap: Observable.of(convertToParamMap({id: 1})) }
}

关于angular - 如何对使用 router.paramMap 的 Angular 4 组件进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46823177/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com