gpt4 book ai didi

angular - 编写多个测试用例时,ActivatedRoute 参数在单元测试中不起作用

转载 作者:行者123 更新时间:2023-11-28 21:36:15 60 4
gpt4 key购买 nike

我正在使用以下代码模拟 ActivatedRoute 的参数值:

 providers: [
{
provide: ActivatedRoute,
useValue: { params: of({id: 1})}
},

我的组件这样使用 ActivateRoute:

ngOnInit() {
this.route.params.subscribe(params => {
this.selectedId = +params['id'];

我的测试用例目前是空的。第一个成功,第二个失败。

describe('The VIS form', () => {
it('should be invalid', () => {
//Nothing here
});

it('should be valid', () => {
//Nothing here
});
});

它仅在 should be valid 测试用例中给我以下错误。应该无效的测试用例按预期工作:

TypeError: Cannot read property 'subscribe' of undefined
at SafeSubscriber.route.params.subscribe.

我试过使用 stub 模拟 ActivatedRoute,使用主题作为参数的来源。

我希望这两个测试都能通过,因为它们都是空的,什么也不做。

See image for the test results

最佳答案

我不确定为什么 useValue 不起作用,但我通常使用一个类来执行此操作:

  class MockActivatedRoute {
params = of({
id: '1'
});
}
providers: [
{
provide: ActivatedRoute,
useClass: MockActivatedRoute
},

这有什么区别吗?

关于angular - 编写多个测试用例时,ActivatedRoute 参数在单元测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58483161/

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