Node.js 如何在Express js中模拟单元测试的IP地址

Node.js 如何在Express js中模拟单元测试的IP地址,node.js,express,Node.js,Express,我已经实现了这个mock,但我不喜欢它,因为它要求我在真实的应用程序中使用mock代码,而如果我可以用其他方式对它进行模拟,而在真实的应用程序中不使用mock变量,我会更喜欢它 const ipValidator = (req, res, next) => { let ip = req.connection.remoteAddress const MOCK = req.app.get('MOCK') if (MOCK && MOCK.IP) { ip

我已经实现了这个mock,但我不喜欢它,因为它要求我在真实的应用程序中使用mock代码,而如果我可以用其他方式对它进行模拟,而在真实的应用程序中不使用mock变量,我会更喜欢它

const ipValidator = (req, res, next) => {
  let ip = req.connection.remoteAddress

  const MOCK = req.app.get('MOCK')
  if (MOCK && MOCK.IP) {
    ip = MOCK.IP
  }

  if (isUsIp(ip)) {
    next()
    return
  }

  res.end()
}

不要在代码中正确地放置模拟,而是直接在单元测试中操纵
req.connection.remoteAddress
。这样,您可以从路由中删除
req.app.get('MOCK')
调用。

我想全面测试我的端点,而不仅仅是单个或分组控制器/中间件。我尝试模拟app.handle并替换req.connection.remoteAddress,但没有成功。由于未知的原因,真正的ip仍然被传递。我不知道如何为真正的端点请求模拟(req,res)。