gpt4 book ai didi

javascript - NodeJS 和 MongoDB 单元测试

转载 作者:行者123 更新时间:2023-12-04 11:15:31 25 4
gpt4 key购买 nike

下午所有

我一直在努力寻找以下问题的可靠解决方案。

我如何 单元测试 使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com