vscode 本身不内置单元测试数据生成功能,但可通过插件、脚本和ai工具组合实现:random data generator 适合轻量json填充;faker.js 支持业务语义与多表关联;database client插件可基于真实表结构生成合规模拟数据。

VSCode 本身不内置单元测试数据生成功能,但通过组合插件、脚本和上下文感知的 AI 工具,可以实现「一键生成结构化 JSON」或「贴近真实数据库记录的模拟数据」——关键不在“有没有”,而在“怎么串起来用”。
用 Random Data Generator 插件快速填充 JSON 字段
这是最轻量、适合临时填充配置或 API Mock 的方式。安装 Random Data Generator 后,它不修改项目结构,只对当前光标位置或选中文本生效。
- 右键菜单里出现
Generate Random Data→JSON Object时,会弹出字段配置面板:可指定字段名、类型(string/email/number/date)、是否必填、数组长度等 - 生成结果是纯 JSON 片段,**不会自动加引号包裹 key**(如
{name: "Alice"}),需确认目标环境是否接受非标准 JSON;若要严格合规,勾选Strict JSON选项 - 不支持关联逻辑(比如
user_id和order.user_id自动对齐),所有字段独立随机,适合单表 / 单资源场景
用 faker.js 脚本控制生成带业务语义的测试记录
当需要模拟用户注册流水、订单+地址+商品三张表联动数据时,硬编码或插件无法满足,faker.js 是更可控的选择。
- 在项目中
npm install faker --save-dev,新建generate-orders.js - 写法示例(注意
fakerv8+ 使用faker.string.uuid()等新 API):import { faker } from 'faker';<br>const orders = Array.from({ length: 10 }, () => ({<br> id: faker.string.uuid(),<br> user_email: faker.internet.email(),<br> created_at: faker.date.recent({ days: 30 }).toISOString(),<br> total: parseFloat(faker.commerce.price({ min: 10, max: 500 }))<br>}));<br>console.log(JSON.stringify(orders, null, 2)); - 运行
node generate-orders.js > orders.json直接落地文件;若需插入数据库,可配合pg或sqlite3包批量INSERT,而非依赖 VSCode 插件
从已有数据库结构反向生成模拟记录(含外键约束)
如果你已连接 PostgreSQL/MySQL,且使用的是 Database Client 类插件(如 SQLTools 或 vscode-database-client),右键表名的 Generate Mock Data 功能才真正有用。
- 该功能会读取表结构(字段名、类型、NOT NULL、DEFAULT、外键定义),生成语法合法、约束合规的数据
- 例如:某表有
user_id INT REFERENCES users(id),生成时会先查users表现有 ID,再从中随机选值,避免外键冲突 - 但注意:它**不执行 INSERT**,只输出
INSERT语句或 JSON;若目标库不允许直接执行(如生产只读),就得手动清理或改用ON CONFLICT DO NOTHING - 部分插件生成的 JSON 默认用双引号包裹数字(
"123"),导入到 TypeScript 接口时可能触发类型错误,需提前替换或用JSON.parse()处理
真正卡住人的不是“生成不出来”,而是生成的数据和你的测试上下文脱节——比如时间字段全是未来时间、ID 重复导致唯一索引报错、JSON 中混入 undefined 字符串。动手前先花 30 秒看一眼目标 schema 或接口文档,比调十次插件参数更省时间。











