86 lines
2.1 KiB
JavaScript
86 lines
2.1 KiB
JavaScript
/**
|
|
* 测试辅助函数集合
|
|
*/
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
const faker = require('faker');
|
|
|
|
/**
|
|
* 生成随机用户数据
|
|
* @returns {Object} 包含随机用户信息的对象
|
|
*/
|
|
function generateRandomUser() {
|
|
return {
|
|
username: faker.internet.userName(),
|
|
email: faker.internet.email(),
|
|
password: faker.internet.password(10),
|
|
firstName: faker.name.firstName(),
|
|
lastName: faker.name.lastName(),
|
|
phone: faker.phone.phoneNumber(),
|
|
address: {
|
|
street: faker.address.streetAddress(),
|
|
city: faker.address.city(),
|
|
zipCode: faker.address.zipCode(),
|
|
country: faker.address.country()
|
|
}
|
|
};
|
|
}
|
|
|
|
/**
|
|
* 等待指定时间
|
|
* @param {number} ms 等待的毫秒数
|
|
* @returns {Promise<void>}
|
|
*/
|
|
function sleep(ms) {
|
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
}
|
|
|
|
/**
|
|
* 从文件加载测试数据
|
|
* @param {string} filePath 数据文件路径
|
|
* @returns {Object} 测试数据对象
|
|
*/
|
|
function loadTestData(filePath) {
|
|
const fullPath = path.resolve(__dirname, '../../data', filePath);
|
|
try {
|
|
const data = fs.readFileSync(fullPath, 'utf8');
|
|
return JSON.parse(data);
|
|
} catch (error) {
|
|
console.error(`Error loading test data from ${fullPath}:`, error);
|
|
return {};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 生成唯一ID
|
|
* @param {string} prefix ID前缀
|
|
* @returns {string} 唯一ID
|
|
*/
|
|
function generateUniqueId(prefix = 'test') {
|
|
return `${prefix}_${Date.now()}_${Math.floor(Math.random() * 1000)}`;
|
|
}
|
|
|
|
/**
|
|
* 格式化日期
|
|
* @param {Date} date 日期对象
|
|
* @param {string} format 格式字符串
|
|
* @returns {string} 格式化后的日期字符串
|
|
*/
|
|
function formatDate(date = new Date(), format = 'YYYY-MM-DD') {
|
|
const year = date.getFullYear();
|
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
const day = String(date.getDate()).padStart(2, '0');
|
|
|
|
return format
|
|
.replace('YYYY', year)
|
|
.replace('MM', month)
|
|
.replace('DD', day);
|
|
}
|
|
|
|
module.exports = {
|
|
generateRandomUser,
|
|
sleep,
|
|
loadTestData,
|
|
generateUniqueId,
|
|
formatDate
|
|
};
|