Javascript 在jest中模拟节点模块中的特定类

Javascript 在jest中模拟节点模块中的特定类,javascript,typescript,testing,jestjs,Javascript,Typescript,Testing,Jestjs,我只想模拟net节点模块()中的Socket类 我有一门课看起来像这样 import { Socket } from 'net'; class Foo { protected socket: Socket; constructor() { this.socket = new Socket(); } connect() { const connPromise = new Promise<undefined>(reso

我只想模拟
net
节点模块()中的
Socket

我有一门课看起来像这样

import { Socket } from 'net';

class Foo {
    protected socket: Socket;

    constructor() {
        this.socket = new Socket();
    }

    connect() {
        const connPromise = new Promise<undefined>(resolve => {
            this.socket.connect(80, '192.168.1.1', () => {
                // Do some stuff with local state

                resolve();
            });
        });

        return connPromise;
    }
}
如何控制
this.socket.connect
方法实现?

尝试为模拟函数提供一个:

jest.mock('net', () => ({
    Socket: function() {
        return {
            connect() {
                return 'Hello World'
            }
        }
    }
}))
(编辑是因为我忘了您不能在jest工厂中引用外部作用域中的函数:D)

尝试为模拟函数提供一个:

jest.mock('net', () => ({
    Socket: function() {
        return {
            connect() {
                return 'Hello World'
            }
        }
    }
}))
(编辑是因为我忘了不能在jest工厂中引用外部作用域中的函数:D)