5

Sto scrivendo test di integrazione per l'applicazione scritta in NodeJS con MongoDB.Come configurare MongoDB per i test di integrazione in NodeJS?

Su server CI Vorrei avere una sorta di MongoDB incorporato per prestazioni più veloci e controllo più semplice. Attualmente ho MongoDB su un altro server, ma i test sono lenti. Prima di ogni test ho bisogno di eliminare tutte le collezioni. Sto usando mangusta come ORM.

Finora ho trovato solo MongoDB incorporato per Java.

+0

Si potrebbe semplicemente impostare un'istanza MongoDB dedicata sul proprio server CI ... –

risposta

0

Il nostro team ha cancellato le chiamate di mongo skin. A seconda dei pacchetti di test, puoi fare la stessa cosa. Ci vuole un po 'di lavoro ma ne vale la pena. Creare una funzione di stub e quindi dichiarare semplicemente ciò che è necessario nel test.

// Object based stubbing 
    function createObjStub(obj) { 
     return { 
     getDb: function() { 
     return { 
      collection: function() { 
       var coll = {}; 

       for (var name in obj) { 
       var func = obj[name]; 

       if (typeof func === 'object') { 
        coll = func; 
       } else { 
        coll[name] = func; 
       } 
       } 

       return coll; 
      } 
      }; 
     } 
     } 
    }; 
    // Stubbed mongodb call 
     var moduleSvc = new ModulesService(createObjStub({ 
     findById: function(query, options, cb) { 
      return cb({ 
      'name': 'test' 
      }, null); 
      //return cb(null, null); 
     } 
     }),{getProperties: function(){return{get: function(){} }; } }); 
+0

Questo è un modo in cui può essere fatto, ma taglierò tutti i controlli, i vincoli ei processi di MongoDB. Se la chiave primaria è univoca, la seconda scrittura non restituisce l'errore. Se c'è un errato salvataggio di informazioni, una query errata o un'inizializzazione sbagliata, non lo noterò. –

1

A seguito della "non usano test raddoppia per i tipi non si possiede" linea di principio, prendere in considerazione continuare a utilizzare un vero e proprio esempio MongoDB per il test di integrazione. Guarda this nice article per i dettagli.