我正在为 Node.js node-oracledb 使用 Oracle 数据库驱动程序。我做了一些研究,但找不到任何关于如何对数据库连接进行单元测试的明确解决方案。我应该连接到真实数据库还是模拟连接。哪个框架适合模拟数据库连接?我想对依赖于 oracledb 的发布请求 /API/login 进行单元测试。下面分享代码。请指导。
var express = require('express');
var router = express.Router();
var oracledb = require('oracledb');
var jwt = require('jsonwebtoken');
var database = {};
router.use('/', function postLogins(req, res) {
database.user = req.body.email.toUpperCase();
database.password = req.body.password;
database.connectString = process.env.DB_HOST;
oracledb.getConnection(
database,
function connectToDatabase(connectionError, connection) {
var payload;
if (connectionError) {
res.set('Content-Type', 'application/json');
res.status(500).send(JSON.stringify({
status: 500,
message: 'Error connecting to DB',
detailed_message: connectionError.message
}));
return;
}
payload = {
sub: req.body.email
};
res.status(200).json({
user: req.body.email,
token: jwt.sign(payload, process.env.SECRET_KEY, { expiresIn: '8h' })
});
connection.release(function onRelease(releaseError) {
if (releaseError) {
console.error(releaseError.message);
} else {
console.log('POST /logins : Connection released');
}
});
}
);
});
module.exports = router;