Node.js node-oracledb에 Oracle 데이터베이스 드라이버를 사용하고 있습니다. 몇 가지 조사를했는데 단위 테스트 DB 연결 방법에 대한 명확한 해결책을 찾을 수 없었습니다. 실제 데이터베이스에 연결하거나 연결을 모의해야합니까? 어떤 프레임 워크가 DB 연결 조롱에 좋을까요? oracledb에 의존하는 단위 테스트 게시 요청/API/로그인을 원합니다. 아래 코드를 공유하십시오. 안내해주십시오.단위 테스트에서 노드 데이터베이스 연결을 모의하는 방법은 무엇입니까?
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;
빠른 응답을 보내 주셔서 감사합니다. 귀하의 답변을 기반으로 내 코드를 리팩터링 할 것입니다. 또한 Nightwatch 프레임 워크를 사용하여 완벽한 기능을 테스트 할 수 있습니다. – user557657