如何检测我的express(4.0)node.js应用程序是否使用特定的中间件?
为了单元测试的目的,我想知道是否有中间件在使用 比如说 app.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;
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
})
})