использовать функции jest mock для проверки кода, вызывающего другой сервер - PullRequest
0 голосов
/ 27 августа 2018

Грубо говоря, моя функция JavaScript, которую я хочу протестировать, выглядит следующим образом:

const request = require('request-promise-native');
async function callServer() {
    // Prepare parameters
    // Call `request` with parameters
    // Parse response JSON and return
}

Можно ли как-нибудь протестировать эту функцию без фактического вызова реального сервера? Могу ли я использовать функцию шутки, чтобы как-то переопределить request()? Для этого мне нужно изменить каждую функцию, чтобы она принимала функцию request в качестве параметра, или есть другой способ?

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете макетировать импортированный модуль через jest.mock. https://jestjs.io/docs/en/api#requirerequiremockmodulename

describe('main description', () => {
it('description of test case', () => {
    jest.mock('request-promise-native', () => {
        return {}; // Return what the request-promise-native supposed to return
    });
    const result = callServer(); 

    expect(result).toBe({});
});
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...