【发布时间】:2020-11-24 14:29:22
【问题描述】:
我有以下连接到 redis 数据库的文件:index.js
const redis = require('redis');
const logger = require('../logger');
const config = require('../env');
const client = redis.createClient({
host: config.redis.host,
port: config.redis.port
});
const connect = () => {
client.on('connect', () => {
logger.info(`Redis connected on port: ${client?.options?.port}`);
});
client.on('error', err => {
logger.error(`500 - Could not connect to Redis: ${err}`);
});
};
const close = () => {
client.quit();
};
module.exports = { connect, close, client };
还有一个包含一些 Redis 功能的帮助文件:
const util = require('util');
const { client } = require('./index.js');
const set = ({ key, data, mode, expiresIn }) => {
client.set(key, data, mode, expiresIn);
};
const get = key => {
client.get = util.promisify(client.get);
return client.get(key);
};
const remove = key => {
client.del(key);
};
const getKeys = keyPattern => {
client.keys = util.promisify(client.keys);
return client.keys(keyPattern);
};
module.exports = { set, get, remove, getKeys };
现在我想用 Jest 测试这些功能,我应该在 mocks 文件夹中模拟 Redis 吗?或者只是为测试环境创建一个单独的数据库来测试功能?
【问题讨论】:
标签: javascript node.js unit-testing redis jestjs