用dummy db在自己的环境中testingexpress.js应用程序

我有我的networking应用程序的以下结构

db.js:

mongoose = require('mongoose'); db = mongoose.createConnection("..."); playerSchema = new mongoose.Schema({ // my schema stuff }); exports.Player = db.model("player", playerSchema); 

我有我所有的路线在一个自己的文件(路线/ index.js):

 db = require('../db'); exports.createPlayer = function(req, res) { player = new db.Player(); player.name = req.body.player_name; player.save(function(err) { if (err) { log(err); } res.redirect("/"); }); }; 

app.js

 routes = require('./routes'); app.post("/start", routes.createPlayer); 

我使用摩卡testing应用程序,应该和超类似下面的例子

 should = require('should'); supertest = require('supertest'); app = require('../app'); describe("POST /start", function() { it("should redirect", function(done) { supertest(app) .post("/start") .send({ player_name: "John Wayne" }).end(function(err, res) { should.not.exist(err); done(); }); }); }); 

这一切工作正常,但我不想testing我的生产数据库。 有没有人知道一个聪明的方式来使用虚拟/不同的数据库只是为了testing? 也许使用不同的环境? 我有点卡住了!

我有一个common.js文件,这是我包含在我的testing文件中的第一个文件。 顶部是这样的:

 process.env.NODE_ENV = 'test' process.env.MONGOHQ_URL = 'mongodb://localhost/project-testing' 

当我做我的数据库连接,我有这样的:

 var dbUri = process.env.MONGOHQ_URL || 'mongodb://localhost/project' var db = mongoose.connect(dbUri)