当函数内部需要模块时,使用Sinon的函数存根

问题描述

我正在尝试对函数进行存根以进行单元测试,但是我不确定这是否可行,或者我应该在进行更改之前进行更改。我会尽力解释情况

文件aController.js

...
module.exports = (sqlConnection) => {

...

return {
    ...
    aControllerFunction,...
}

function aControllerFunction(req,res,next) {
  const aService = require('../services/aService')(sqlConnection,req.models)
  ...

  aService.aServiceFunction(req.a,req.b)
}
...
}
...

文件aService.js

...
module.exports = (sqlConnection,models) => {

return {
    ...
    aServiceFunction,...
}

...

function aServiceFunction(a,b) {

  
  ...

  models.aModel.update(a)
  sqlConnection.queryAsync(`UPDATE... ${a}`)
  ...
}
...
}
...

我想对功能aControllerFunctionaServiceFunction进行单元测试。

对于aControllerFunction,我应该存根aService.aServiceFunction,对于aServiceFunction.aServiceFunction,我应该存根sqlConnection.queryAsyncmodels.aModel.update

这种结构是否可行?还是应该在以前进行更改?我尝试这样做,但是我发现很难将其存根,因为需求位于函数内部。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)