Jac*_*son 6 mocha.js mongoose node.js
我应该在没有 mongodb 的情况下在 node+express+mongoose+swagger 应用程序上运行测试,我需要模块来模拟 mongoose(仅用于测试)。我试过 mock-mongoose 和 mockgoose,但我有错误:( 也许我失败了.. 或者这个模块不能帮助我我希望你的想法!
我创建了示例骨架:https : //github.com/miroslav-grabinskiy/swagger-server-mock-tested
我只需要在测试中模拟,我不需要测试猫鼬,比如:
Model.find()
Run Code Online (Sandbox Code Playgroud)
我需要像链接一样的测试 API(路由)
PS 模拟猫鼬不使用承诺 :(
我找到了解决方案 - 使用mockgoose:
"use strict";
const config = require(appRoot + '/config');
const Mongoose = require('mongoose').Mongoose;
const mongoose = new Mongoose();
const DB_NAME = "rbTest";
const DOCKER_MONGODB_URI = "mongodb://mongo:27017/" + DB_NAME;
const LOCAL_MONGODB_URI = "mongodb://localhost:27017/" + DB_NAME + "?socketTimeoutMS=120000";
const myMongo = process.env.DOCKER ? DOCKER_MONGODB_URI : LOCAL_MONGODB_URI;
mongoose.Promise = global.Promise;
if (process.env.NODE_ENV === 'testing') {
const Mockgoose = require('mockgoose').Mockgoose;
const mockgoose = new Mockgoose(mongoose);
mockgoose.prepareStorage().then(function() {
mongoose.connect(myMongo, function(err) {
console.log('connected');
});
});
} else {
mongoose.connect(myMongo, config.get('mongoose:options'));
}
module.exports = mongoose;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8231 次 |
| 最近记录: |