2017-07-24 115 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;