首页 > 解决方案 > Sinon - 监视函数中定义的函数

问题描述

我有一个模块可以导出一些看起来像这样的快速中间件:

// my_middleware.js

module.exports = (someMiddleware) => {
  function loadExternalData (val) { ... }

  moreMiddleware.use(async function (req, res, next) {
    const externalData = loadExternalData(req.headers['some-info'])

    someMiddleware(externalData, req, res, next)    
  })

  return myMiddleware
}

我正在尝试测试的返回值,loadExternalData但我不知道该怎么做。我试过这个

it ('returns the expected response', function() {
  const myMiddleware = require('my_middleware.js')
  const someMiddleware = require('some_middleware.js')
  const loadExternalData = sinon.spy(myMiddleware, 'loadExternalData')

  myMiddleware(someMiddleware)

  loadExternalData.should.have.returned('some data')
})

这给了我错误TypeError: Attempted to wrap undefined property loadRegionInfos as function

测试这个的正确方法是什么?

标签: javascriptnode.jschaisinon

解决方案


推荐阅读