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