首页 > 解决方案 > Jest - 模拟类构造函数和方法

问题描述

我在与 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 不是构造函数”错误。

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

谢谢

标签: javascriptclassmethodsconstructorjestjs

解决方案


推荐阅读