我希望对当前正在测试的文件中使用的函数存根。像这样的解构需要此函数:
const { theFunctionIWant } = require('path/to/module')
Run Code Online (Sandbox Code Playgroud)
测试时,永远不会调用存根,而是继续调用实函数。但是当我“正常”地要求它时(即:不破坏结构)
const myModule = require('path/to/module')
Run Code Online (Sandbox Code Playgroud)
然后正确使用存根,一切正常
我认为这是由于解构的工作原理以及sinon直接对对象属性而不是对函数进行存根的事实。无论如何,如果您能为我提供一些见解,我将不胜感激!
我想对下面的函数进行单元测试,该函数在我的 node.js 服务器中使用 axios 调用端点。
const callValidateCookieApi = async (cookie) => {
try {
const config = {
method: 'post',
url: process.env.API_COOKIE_VALIDATION,
headers: {
Cookie: cookie
}
}
return await axios(config)
} catch (error) {
console.log(error.message)
return error
}
}
Run Code Online (Sandbox Code Playgroud)
如何通过模拟函数内部的 axios 调用来编写单元测试用例?