如何模拟在Jest中命名导出的ES6类?

时间:2019-06-04 00:39:13

标签: jestjs

Jest文档清楚地说明了manually mock an ES6 class是默认导出时的操作方法。例如,这是一个默认导出的类:

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 jest.fn().mockImplementation(() => {
        return {query: mockQuery};
    });
});

但是,如果该类是已命名的导出,该如何模拟呢?我想不通!

这是我的full repo with this example

2 个答案:

答案 0 :(得分:0)

在这里回答:https://github.com/facebook/jest/issues/8532

摘要:

# Bigger buffer size to handle cache invalidation headers expansion
    fastcgi_buffer_size 32k;
    fastcgi_buffers 8 16k;

答案 1 :(得分:0)

对于要使用专门为类设计的 spyOn() 函数的类