Я новичок в тестировании с помощью sinon и пытаюсь научиться работать с заглушкой.Я пытаюсь протестировать функцию, которая получает объект запроса, получает некоторые свойства из него и передает его экземпляру класса, который выполняет запрос get для внешней службы.
Пример:
exports.getMyThings = (req) => {
const reqOpts = {
qs: req.query
};
return apiInstance.get(req.route, reqOpts);
};
В файле, куда я экспортирую свою функцию getMyThings
, создается экземпляр apiInstance
.
Я пытаюсь отключить метод apiInstance.get
, чтобы я мог проверить, что мойgetMyThings
функция работает правильно и передает ей правильные аргументы.
Я попытался написать заглушку, импортировав класс в мой тестовый файл, а затем создав экземпляр заглушки:
const MyClass = require('.../blahblah)
const apiInstance = sinon.createStubInstance(MyClass);
и
const apiInstance = new MyClass();
apiInstance.get = sinon.stub();
, новнутри моей функции getMyThings
метод apiInstance.get
не является обернутым - это оригинал.Обернутый экземпляр существует только внутри моего теста.Это имеет смысл, но я не уверен, как обойти это.Любые идеи приветствуются.