У меня есть набор функций, которые экспортируются из файла utils. js и используются в одной из функций маршрута остальные API, я пытаюсь проверить функцию, высмеивая возвращаемое значение, но я не могу сделать это.
// utils.js
exports.callSeparate = function() {
return new Promise(function (resolve, reject) {
try {
return {x:10, y:10}
}
}
exports.callSeparate = function() {
return new Promise(function (resolve, reject) {
try {
return {x:11, y:12}
}
}
// index.js
const {callSeparate} = import("../utils.js")
router.post(firstfunction,secondfunction,thridfunction);
async function secondfunction(req, res, next) {
result = await callSeparate()
return result;
}
//test.js
let callAPistub = sinon.stub(utils,'callSeparate');
callAPistub.returns(
{x:13, y:14}
);
Я могу смоделировать функцию, если импортирую всю библиотеку утилит и затем использую эту функцию в остальном API.
// index.js
const utils = import("../utils.js")
router.post(firstfunction,secondfunction,thridfunction);
async function secondfunction(req, res, next) {
result = await utils.callSeparate()
return result;
}
Как я могу издеваться над функция, когда она написана так, как указано в первом блоке кода, это не мой код, я пытаюсь проверить его, поэтому мои руки немного связаны. Я читал о rewire и proxyquire, но они очень запутаны, и я не могу достичь желаемых результатов.