如何在NodeJS中设置MongoDB进行集成testing?

我正在为使用MongoDB编写的NodeJS应用程序编写集成testing。

在CI服务器上,我想有一些embedded式的MongoDB,以获得更快的性能和更简单的控制。 目前我在其他服务器上有MongoDB,但是testing很慢。 在每次testing之前,我需要删除所有的集合。 我正在使用mongoose作为ORM。

到目前为止,我只findembedded式MongoDB for Java。

继“不使用testing双倍types,你不拥有”的原则,考虑继续使用真正的MongoDB实例进行集成testing。 看这个不错的文章的细节。

我们的团队一直在蒙蒙皮肤电话。 根据你的testing包,你可以做同样的事情。 这需要一点点的工作,但这是值得的。 创build一个存根函数,然后在你的testing中声明你需要的东西。

// 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(){} }; } });