Как можно подменить вызов функции внутри другой функции во время тестирования?

Пример функции:
const getSomeData = require('path/to/file.js');

const someFunction = async () => {
  const someRequestedData = await getSomeData(param1,param2);
  // do something
  return result;
};
module.exports = someFunction;


Функция getSomeData вызывает AWS Lambda напрямую, та, в свою очередь, делает запрос в DynamoDB и достает определенные данные. Проблема в том, что при тестировании для имитации некоторых состояний и условий, данных в базе не будет, а протестировать их надо.
Подскажите, можно ли как-то во время тестирования на Mocha/Chai или Karma в тесте при вызове someFunction, при вызове getSomeData самому написать объект с данными и вернуть его, чтобы реального вызова getSomeData не было? Что-то типа: если есть вызов getSomeData, вернуть такие то данные.
  • Вопрос задан
  • 204 просмотра
Пригласить эксперта
Ответы на вопрос 2
Комментировать
Lynn
@Lynn
nginx, js, css
Я не очень люблю jest, но там уже всё есть
https://jestjs.io/docs/en/mock-functions#mocking-m...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы