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