为什么在Angular单位测试中使用OverrideProvider或OverrideComponent来更改提供商的依赖性值? 我有几个使用依赖关系属性的不同值的单位测试,我阅读了有关OverrideProvider和Overridecomponent的信息,但是我认为,如果我可以J.

问题描述 投票:0回答:1

当提供商设置为组件级别时,如以下内容:
Component({
  selector: 'my-component',
  ...
  providers: [TestService],
})
export class MyComponent {
  ...
}

像您一样在测试台上提供一个存根:

TestBed.configureTestingModule({ declarations: [TestComponent], providers: [{ provide: TestService, useValue: testServiceMock }] }).compileComponents();
angular unit-testing
1个回答
0
投票
无法正常工作,因为它将在模块级别而不是在组件级别提供存根。 如果您确实想将提供的组件级存根,则需要使用

Testbed.overrideComponent

.
来覆盖组件。
角现在改进了文档,并给出了以下解释:

https://angular.dev/guide/testing/components-scenarios#override-component-providers

    

© www.soinside.com 2019 - 2025. All rights reserved.