angular - Angular 模拟套接字服务
问题描述
我有一个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。使用时对我有用ngx-socket-io
beforeEach(async(() => {
TestBed.configureTestingModule({
// ...
providers: [{ provide: SocketService, useClass: SocketStub }],
//...
})
推荐阅读
- sass - 如何在 Sass 中创建一个空 Map?
- docker-compose - Docker Compose 文件以创建具有多个图像的容器
- r - 使用 dplyr::filter 问题创建 R 函数
- reactjs - 在 ReactJS 的“第 2 页”上启动“3 页”单页网站
- java - Maven 依赖项:列表显示的版本与正在执行的版本不同
- c# - Xamarin.Android 上的可绘制动画
- android-studio - 在 Play 商店进行 beta 测试的 Android Studio 应用
- amazon-web-services - 通过 API-Gateway 调用 Lambda 并给出 403 响应?
- php - 抽出随机数量的问题,例如 04 out of 10
- excel - 日期之间不同列中的 sumproduct