Javascript 存根连接中间件

Javascript 存根连接中间件,javascript,express,connect,sinon,Javascript,Express,Connect,Sinon,我有一个中间件(coffeescript): 如何存根basicAuth函数以控制流量 我试过: express = require 'express' sinon.stub express, 'basicAuth' 和获取错误: TypeError: Cannot set property basicAuth of function createApplication() { var app = connect(); utils.merge(app, proto); app.r

我有一个中间件(coffeescript):

如何存根basicAuth函数以控制流量

我试过:

express = require 'express'
sinon.stub express, 'basicAuth'
和获取错误:

 TypeError: Cannot set property basicAuth of function createApplication() {
  var app = connect();
  utils.merge(app, proto);
  app.request = { __proto__: req };
  app.response = { __proto__: res };
  app.init();
  return app;
} which has only a getter
我也尝试过:

connect = require 'connect'
sinon.stub connect, 'basicAuth'

哪些错误是因为connect不是my app的直接可用依赖项(express需要它)

您可以创建自己的模块,该模块将导出您希望存根的方法

# stub.coffee
express = require 'express'

# export basicAuth as a stub-friendly export
module.exports.basicAuth = express.basicAuth
您可能需要这个,而不是express

stubpress = require 'stubbableExpress'

basic = (req, res, next) ->
  return next() if not app.settings.auth?
  stubpress.basicAuth(app.settings.auth.username, app.settings.auth.password) req, res, next
这给了你一些你能理解的东西:

stubpress = require 'stubbableExpress'
sinon.stub(stubpress, 'basicAuth')
stubpress = require 'stubbableExpress'
sinon.stub(stubpress, 'basicAuth')