作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从我的测试中的“NavigationService” stub 一个函数。
正如您在下面看到的,我想使用 NavigationServiceStub 而不是 NavigationService。 NavigationService 有一个名为“configureRoutedScreens”的方法,我在 stub 中对其进行了模拟。
通过此设置,我收到错误 TypeError: this.navigationService.configureRoutedScreens is not a function。我错过了什么吗?
describe('NetworkInterfacesComponent', () => {
...
beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({
declarations: [
NetworkInterfacesComponent
],
imports: [
RouterTestingModule
],
providers: [
{provide: NetworkService, useValue: networkServiceSpy},
{provide: NavigationService, useValue: NavigationServiceStub}
]
}).compileComponents();
}));
...
export class NavigationServiceStub {
configureRoutedScreens(params: ParamMap): void {
}
...
}
最佳答案
由于 stub 是一个类,我认为您应该为 stub 使用 useClass
而不是 useValue
。
尝试:
providers: [
{provide: NetworkService, useValue: networkServiceSpy},
// change the line below to do useClass instead of useValue
{provide: NavigationService, useClass: NavigationServiceStub}
]
关于angular - Jasmine stub 函数导致类型错误 "... is not a function",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65073045/
我是一名优秀的程序员,十分优秀!