如何检测我的express(4.0)node.js应用程序是否使用特定的中间件?

如何检测我的express(4.0)node.js应用程序是否使用特定的中间件?,node.js,testing,express,mocha.js,middleware,Node.js,Testing,Express,Mocha.js,Middleware,为了单元测试的目的,我想知道是否有中间件在使用 比如说 app.js var express = require('express'); var morgan = require('morgan'); module.exports = function(options) { var app = express(); if (options.logRequests) { app.use(morgan('dev')); } return app;

为了单元测试的目的,我想知道是否有中间件在使用

比如说

app.js

var express = require('express');
var morgan = require('morgan');

module.exports = function(options) {
    var app = express();

    if (options.logRequests) {
        app.use(morgan('dev'));
    }

    return app;
}
app.test.js(通过摩卡运行)

我相信中间件被推到了似乎没有文档记录的express“stack”,可以通过
应用程序访问它。u router.stack
数组,但这看起来是一种非常可怕的方式来达到我的目的

有人知道有更好的方法来证明我的观点吗

谢谢

这听起来像是您想要“功能测试”,您发送的请求只有在所需中间件存在的情况下才会生成特定的结果。
describe('app', function(){
    it('should log requests when initialized with the `log requests` option', function() {
        var app = require('./app)({ logRequests: true });

        // Something to establish whether or not morgan is in use
    })
})