Jest Typescript模拟模块导出的特定类,但不是全部

Jest Typescript模拟模块导出的特定类,但不是全部,typescript,mocking,jestjs,Typescript,Mocking,Jestjs,我一直在试图找出如何最好地模拟从节点模块导出的特定类。在本例中,我的代码使用了discord.js中的类Message和TextChannel和MessageAttachment。我想模拟Message和TextChannel,这样我就可以轻松地为单元测试设置它们,但我想保留MessageAttachment的功能,所以我不能只jest.mock(“discord.js”) 我试过类似的方法: const MockedMessage = jest.Mock<Message>; con

我一直在试图找出如何最好地模拟从节点模块导出的特定类。在本例中,我的代码使用了
discord.js
中的类
Message
TextChannel
MessageAttachment
。我想模拟Message和TextChannel,这样我就可以轻松地为单元测试设置它们,但我想保留
MessageAttachment
的功能,所以我不能只
jest.mock(“discord.js”)

我试过类似的方法:

const MockedMessage = jest.Mock<Message>;
const message = new MockedMessage();
message.content = "test"
...

但是这似乎也不起作用

看@EstusFlask谢谢,这就是答案:)我想我一开始看的时候没有看到,但这就成功了。看@EstusFlask谢谢,这就是答案:)我想我一开始看的时候没有看到,但这就成功了。
import * as Discord from 'discord.js'
jest.mock('discord.js')
const {MessageAttachment} = jest.requireActual('discord.js');
Object.defineProperty(Discord, 'MessageAttachment', MessageAttachment);