首页 > 解决方案 > 如何从 Socket.io 模拟 Socket 对象

问题描述

我想在 Nestjs 中为我的网关创建一个测试。我试图为 socket.io 搜索一些模拟库,但没有人使用 TypeScript。这是我的测试

import { Test, TestingModule } from '@nestjs/testing'
import { RoomGateway } from './room.gateway'
import { Socket } from 'socket.io'

describe('RoomGateway', () => {
  let roomGateway: RoomGateway
  let socket: Socket

  beforeEach(async () => {
    const RoomModule: TestingModule = await Test.createTestingModule({
      providers: [RoomGateway],
    }).compile()

    roomGateway = RoomModule.get<RoomGateway>(RoomGateway)
    socket = new Socket(null, null, null)
  })

  it('Should be defined', () => {
    expect(roomGateway).toBeDefined()
  })

  it('Should return message that wass provided', async () => {
    expect(roomGateway.handleMessage(socket, 'Hello World')).toEqual({
      event: 'message',
      data: 'Hello World',
    })
  })
})

任何人都知道如何在 TypeScript 中模拟 Socket 对象?

标签: typescripttestingsocket.iomockingnestjs

解决方案


推荐阅读