【发布时间】:2018-11-26 11:53:56
【问题描述】:
我有一个socketService,在初始化组件以从服务器获取一些数据时使用它。但是,我不能嘲笑它,因为它说
TypeError: this.socketService.send 不是函数
export class SocketStub {
send(message: ISocketRequest): Observable<any> {
return of({"status": 200, "data": "success"});
}
}
测试中的提供者
providers: [{
provide: SocketService,
useValue: SocketStub
}]
在每个之前
beforeEach(() => {
socketService = TestBed.get(SocketService);
fixture = TestBed.createComponent(UsersItemComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
我尝试运行的一项测试是“应该创建”的默认测试。由于组件使用这个socketService 来获取我需要模拟它的数据,但它似乎不起作用
【问题讨论】:
-
在提供存根服务时尝试使用
useClass而不是useValue。
标签: angular unit-testing karma-runner stub