如何模拟一个尚不存在的节点模块?

How to mock a node module that doesn't exist yet?

没有这样的-module.ts

declare module 'no-such-module' {
    export function sum(a: number, b: number): number;
}

sum.ts

import { sum } from 'no-such-module';

export const func = (a: number, b: number) => sum(a, b);

sample.test.ts

jest.mock('no-such-module');
const { sum } = require('no-such-module');

sum.mockImplementation((a,b) => a+b);

describe('sample test', () => {
    it('should pass', () => {
        expect(sum(1, 2)).toBe(3);
    });
});

错误

Cannot find module 'no-such-module' from 'sample.test.ts'

    > 1 | jest.mock('no-such-module');
        |      ^
      2 | const { sum } = require('no-such-module');
      3 | 
      4 | sum.mockImplementation((a,b) => a+b);

是否可以模拟一个尚不存在的节点模块?我在 ts 文件中声明了一个 no-such-module 。我正在尝试从模块中模拟一个函数。

jest.mock('no-such-module', () => {
    return {
        sum: (a,b) => a+b
    };
}, { virtual: true });

const { sum } = require('no-such-module');

我们需要将选项 { virtual: true } 传递给 jest.mock()