我在为我的 Mongoose 模型和我的 express 应用程序(路线)编写测试时遇到问题
我有一个非常简单的app.js文件:
var env = process.env.NODE_ENV || 'development',
    express = require('express'),
    config = require('./config/config')[env],
    http = require('http'),
    mongoose = require('mongoose');
// Bootstrap db connection
mongoose.connect(config.db)
// Bootstrap models
var models_path = __dirname + '/app/model';
fs.readdirSync(models_path).forEach(function(file) {
    if (~file.indexOf('.js')) {
        require(models_path + '/' + file);
    }
});
var app = express();
// express settings
require('./config/express')(app, config);
// Bootstrap routes
require('./config/routes')(app, compact);
if (!module.parent) {
    app.listen(app.get('port'), function() {
        console.log('Server started on port ' + app.get('port'));
    })
}
module.exports = app;
我有一个名为的文件夹model,其中包含我的猫鼬模型。
我有一个test文件夹,accountTest.js- 看起来有点像这样:(
这是为了测试我的帐户模型)  
var utils = require('./utils'),
  should = require('chai').should(),
  Account = require('../app/model/account');
describe('Account', function() {
  var currentUser = null;
  var account = null;
  it('has created date set on save', function(done) {
    var account = new Account();
    account.save(function(err) {
      account.created.should.not.be.null;
      done();
    });
  });
utils 取自这里:http ://www.scotchmedia.com/tutorials/express/authentication/1/06
如果我把它留在这一次测试中,这很有效。
如果我添加另一个测试来测试我的快速路线,如下所示:
var request = require('supertest'),
    app = require('../../app'),
    should = require('chai').should();
describe('Account controller', function() {
    it('GET /account returns view', function(done) {
        //omitted for brevity
        done();
    });
});
然后我得到一个超时错误,在我对我的模型的测试中......
影响它的行是app = require('../../app')
如果我删除它,那么就没有超时。
我意识到这可能与猫鼬连接有关,但不确定如何在测试之间“共享”它?