Javascript 如何开玩笑地模拟命名导入?

Javascript 如何开玩笑地模拟命名导入?,javascript,reactjs,testing,jestjs,Javascript,Reactjs,Testing,Jestjs,我曾经有过这样的设置: export class MyClass { } export default new MyClass() 然后我会做:从“libraries/myclass”导入myclass 现在我将其更改为: export const myclass=new myclass() 像这样导入import{myclass}来自“libraries/myclass”,这似乎在我的代码中起作用 然而,我所有的玩笑测试都失败了 我目前正在做: jest.mock('libraries/my

我曾经有过这样的设置:

export class MyClass {
}
export default new MyClass()
然后我会做:
从“libraries/myclass”导入myclass

现在我将其更改为:

export const myclass=new myclass()

像这样导入
import{myclass}来自“libraries/myclass”
,这似乎在我的代码中起作用

然而,我所有的玩笑测试都失败了

我目前正在做:

jest.mock('libraries/myclass', () => ({
    myclassfunction: jest.fn(),
}))
我试着换成:

jest.mock('./myclass.js', () => (
  {
    ...(jest.requireActual('./myclass.js')),
    myclassfunc: () => {}
  }
))

但是它仍然失败,当I
console.log(myclass)
它作为未定义的来处理时

您可以在测试中使用jest automock特性,您需要使用工厂来模拟它吗

import { myclass } from 'libraries/myclass';
jest.mock('libraries/myclass'); 

// myclass is now a mock

您正在提供一个工厂,如果您将其更改为自动模拟,则应模拟
myclass