Jestjs 如何模拟一个ES6类,它是一个Jest中命名的导出?

Jestjs 如何模拟一个ES6类,它是一个Jest中命名的导出?,jestjs,Jestjs,Jest文档清楚地显示了当它是默认导出时如何执行。例如,以下是作为默认值导出的类: class QueryService { query(queryText: string): Promise<any> { // ----- Query the API ----- // ----- Return the result ----- return Promise.resolve({ data: {

Jest文档清楚地显示了当它是默认导出时如何执行。例如,以下是作为默认值导出的类:

class QueryService {
    query(queryText: string): Promise<any> {
        // ----- Query the API -----

        // ----- Return the result -----
        return Promise.resolve({
            data: {
                ticker: 'GOOG',
                name: 'Alphabet Company'
            }
        });
    }
}

export default QueryService;
但是,如果这个类是命名的导出,我如何模拟它?我想不出来

这是我的答案。

回答如下:

总结:

const mockQuery = jest.fn();
jest.mock('./QueryService', () => {
    return {
        QueryService: jest.fn().mockImplementation(() => {
            return { query: mockQuery };
        })
    };
});
答复如下:

总结:

const mockQuery = jest.fn();
jest.mock('./QueryService', () => {
    return {
        QueryService: jest.fn().mockImplementation(() => {
            return { query: mockQuery };
        })
    };
});

对于一个你想使用专门为类设计的
spyOn()
函数的类

对于一个你想使用专门为类设计的
spyOn()
函数的类

我在本期中找不到同样的手动模拟。你有没有关于命名导出类的手动模拟的例子?我在这个问题上找不到同样的手动模拟。您是否有手动模拟命名导出类的示例?