Как издеваться над классом ES6, который является именованным экспортом в Jest? - PullRequest
1 голос
/ 04 июня 2019

Jest документация ясно показывает, как вручную смоделировать класс ES6 , когда это экспорт по умолчанию. Например, вот класс, который экспортируется по умолчанию:

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};
    });
});

Однако, как мне издеваться над этим классом, если это был именованный экспорт? Я не мог понять это!

Вот мое полное репо с этим примером .

1 Ответ

0 голосов
/ 04 июня 2019

Ответил здесь: https://github.com/facebook/jest/issues/8532.

Резюме:

const mockQuery = jest.fn();
jest.mock('./QueryService', () => {
    return {
        QueryService: jest.fn().mockImplementation(() => {
            return { query: mockQuery };
        })
    };
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...