2017-07-24 3 views
0

Ich sollte Tests auf Knoten + Express + Mungo + Swagger App ohne Mongodb, Ich brauche ein Modul zum Mungo Mungo (nur für Tests). Ich habe versucht, Mock-Mungo und mockgoose, aber ich Fehler hatte :( Vielleicht ich nicht .. oder diese Module kann mir nicht helfen, ich für Ihre Ideen hoffenWie kann man Mungo spotten?

I Beispiel Skelett erstellt: https://github.com/miroslav-grabinskiy/swagger-server-mock-tested

ich brauche nur in Tests zu verspotten, und ich brauche nicht Mungo zu testen, wie ein:

Model.find() 

ich brauche Test api (Routen) wie in Verbindung

P.S. Mock-Mungo nicht mit Versprechungen arbeiten :(

Antwort

1

ich die Lösung gefunden haben "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; 
Verwandte Themen