Angular模拟套接字服务

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

我有一个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来获取我需要模拟它的数据,但它似乎不起作用

angular unit-testing karma-runner stub
1个回答
0
投票

使用useClass。当使用ngx-socket-io时它适用于我

beforeEach(async(() => {
    TestBed.configureTestingModule({
    // ...
       providers: [{ provide: SocketService, useClass: SocketStub }],
    //...
})
© www.soinside.com 2019 - 2024. All rights reserved.