【发布时间】:2012-09-12 03:51:35
【问题描述】:
我的网络应用具有以下结构
db.js:
mongoose = require('mongoose');
db = mongoose.createConnection("...");
playerSchema = new mongoose.Schema({
// my schema stuff
});
exports.Player = db.model("player", playerSchema);
我的所有路线都在一个自己的文件中(route/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);
我使用 mocha 测试应用程序,应该和 supertest 类似以下示例
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();
});
});
});
一切正常,但我不想针对我的生产数据库进行测试。有谁知道使用虚拟/不同数据库进行测试的聪明方法?也许使用不同的环境?我有点卡住了!
【问题讨论】:
-
当您连接到 MondoDB 时,您可以指定主机、端口和数据库名称。您可以将此选项存储在某个配置文件中。您甚至可以划分您的生产、开发和测试配置,根据当前的
NODE_ENV环境加载其中一个。
标签: node.js express mongoose mocha.js