2017-07-24 117 views
0

我应该在没有mongodb的node + express + mongoose + swagger应用上运行测试, 我需要模块来模拟猫鼬(仅用于测试)。 我试着模拟猫鼬和mockgoose,但我有错误:( 也许我失败..或该模块不能帮我 我希望你的想法如何模拟猫鼬?

我创建例如骨骼: https://github.com/miroslav-grabinskiy/swagger-server-mock-tested

我需要模拟只有在测试中,我也不需要测试猫鼬,如:

Model.find() 

我需要测试API(路由) 像链接

P.S.模拟猫鼬不承诺:(

回答

1

我已经找到了解决方案 “使用严格”的工作;

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;