Я пытаюсь написать тест, который использует фиктивную реализацию запроса-обещания с установленными значениями по умолчанию.
В моем коде мне требуется запрос с использованием const request = require('request-promise').defaults({ jar: true });
В моем тестовом файле я попытался
const request = require('request-promise');
jest.mock('request-promise');
request.mockImplementation(() => Promise.resolve(JSON.stringify(someVar)));
// This returns the error 'TypeError: request is not a function'
const request = require('request-promise').defaults({ jar: true });
jest.mock('request-promise');
request.mockImplementation(() => Promise.resolve(JSON.stringify(someVar)));
// This returns the error 'TypeError: Cannot read property 'mockImplementation' of undefined'
const request = require('request-promise').defaults({ jar: true });
jest.mock('request-promise').defaults({ jar: true });
request.mockImplementation(() => Promise.resolve(JSON.stringify(someVar)));
// This returns the error 'TypeError: jest.mock(...).defaults is not a function'
const request = require('request-promise').defaults({ jar: true });
jest.mock(('request-promise').defaults({ jar: true }));
request.mockImplementation(() => Promise.resolve(JSON.stringify(someVar)));
// This returns the error 'TypeError: "request-promise".defaults is not a function'
Моя функция выглядит так
const request = require('request-promise').defaults({ jar: true });
const getData = async function getData(
previousRequestResponse,
uniqueId,
) {
// Below function carries out some manipulation of previous response
const body = await getRequestBody(previousRequestResponse);
const response = await request(method, url, body, headers)
.then(response => JSON.parse(response.body))
.catch((err) => {
Logger.error('Failed');
Logger.error(`ERROR - ${err.message}`);
throw err;
});
const newResponse = manipulate(response);
return newResponse;
};
Я хочу имитировать запрос, чтобы ответ был заглушенным значением, и я могу утверждать, что правильное значение возвращается в конце функции.
request.defaults({ jar: true })
. Что вы пытаетесь протестировать? - person mgarcia   schedule 18.04.2020someVar
. Затем я утверждаю, что при вызове моей функции я получаю ожидаемый результат на основе моих заглушенных данных. Надеюсь, это имеет больше смысла. - person Heather   schedule 18.04.2020request-promise
без необходимости имитировать вызовdefaults
. Если бы вы могли показать минимальную релевантную версию кода, который вы пытаетесь протестировать, я мог бы привести тестовый пример. - person mgarcia   schedule 18.04.2020