Jest - 模拟类构造函数和方法

时间:2021-04-30 14:41:40

标签: javascript class methods constructor jestjs

我在用 Jest 同时模拟我的类构造函数和方法时遇到了困难。

我的类看起来像这样,并且在一个存在多个类的文件中:

export class ClassName {

constructor() {
// some code
}

public myMethod() {
// some code
}
}

在我的 Jest 测试文件中,我正在做:

jest.mock('<path_to_my_class>', () => ({
    ...jest.requireActual('<path_to_my_class>'),
    ClassName : {
        default: jest.fn( function () {
            return {
                // some code
            }
        }),
        myMethod: jest.fn(async () => {
            return { // some code }
        })
    },
Class2_Name: {
// Same kind of format
}

}));

在我的测试中,我收到“TypeError: MyClass is not a constructor”错误。

我尝试了很多不同的语法,但我从未设法模拟类构造函数和方法。如果我在模拟中返回一个函数,则类被识别为具有构造函数。但在这种情况下,类方法模拟不再起作用。

谢谢

0 个答案:

没有答案