下午所有
我一直在努力寻找以下问题的可靠解决方案。
我如何 单元测试 使用 MongoDB 的 NodeJS 代码?
我想编写独立的单元测试,而不是为了测试而实际启动任何数据库。
我想测试的示例代码:
数据库服务.js
var mongodb = require('mongodb');
var exports = module.exports = (function () {
var MongoClient = mongodb.MongoClient;
var db = null;
function getDB(){
return db;
}
const connect = (
options
) => {
return new Promise((resolve, reject) => {
var host = options.host;
var port = options.port;
var dbName = options.dbName;
var url = 'mongodb://' + host + ':' + port;
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
if(error){
return reject(false);
}
const db = client.db(dbName);
return resolve(true);
});
});
};
return {
connect: connect,
getDB: getDB
};
})();
用户服务.js
var DatabaseService = require("./DatabaseService");
var exports = module.exports = (function () {
const createUser = (
options
) => {
return new Promise((resolve, reject) => {
var db = DatabaseService.getDB();
var firstName = options.firstName;
var lastName = options.lastName;
db.collection('users').insertOne({
firstName: firstName,
lastName: lastName
},
function(error, result) {
if (error){
return reject(false);
}
return resolve(result);
});
});
};
return {
createUser: createUser
};
})();
最佳答案
您可以选择使用测试库来模拟它,例如之前评论过的 jest-mongodb。或者您需要将您的业务代码与 mongodb 样板隔离开来,并且不要对样板进行单元测试。
关于javascript - NodeJS 和 MongoDB 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939223/