在单元测试中异步地从数据库获取记录通常涉及到使用异步编程模型。以下是一些基础概念和相关步骤:
假设我们使用Node.js和mysql2/promise
库来处理MySQL数据库操作。
npm install mysql2/promise
const mysql = require('mysql2/promise');
// 模拟数据库配置
const dbConfig = {
host: 'localhost',
user: 'testuser',
password: 'testpass',
database: 'testdb'
};
// 异步函数,用于从数据库获取记录
async function fetchRecord(id) {
const connection = await mysql.createConnection(dbConfig);
try {
const [rows] = await connection.execute('SELECT * FROM users WHERE id = ?', [id]);
return rows[0];
} finally {
connection.end();
}
}
// 单元测试
describe('fetchRecord', () => {
it('should fetch a record by id', async () => {
const record = await fetchRecord(1);
expect(record).toEqual({ id: 1, name: 'Test User' });
});
it('should return null for non-existent id', async () => {
const record = await fetchRecord(999);
expect(record).toBeNull();
});
});
通过上述方法,可以在单元测试中有效地进行异步数据库操作,确保测试的准确性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云