用途:在 .NET 测试中生成具真实感的假数据,适用于整合测试、UI 原型、效能测试与数据库种子数据。
主要能力:核心为 Faker<T> 类别,通过 RuleFor 定义属性规则,可 Generate() 单笔或 Generate(n) 多笔。内置 DataSet 涵盖 Person(姓名、Email、性别、生日)、Address(地址、城市、邮编、经纬度)、Company/Commerce(公司名、产品名、价格、EAN-13)、Internet(URL、域名、IP、用户名、密码)、Finance(信用卡号、CVV、账户、IBAN、BIC)、Date(过去/未来/范围内日期)、Random(整数、小数、布尔、GUID、枚举、洗牌)、Lorem(单词、句子、段落)。支持多语言文化,如 zh_TW、zh_CN、ja、ko、fr、de、es、ru、pt_BR 等。进阶功能涵盖 Seed 可重现控制、条件式与机率控制(OrNull、PickRandomWeighted)、关联与巢状对象、自定义 DataSet 扩充。
使用方式:安装 dotnet add package Bogus;建立 Faker<T> 并设定 RuleFor 规则后产生数据。可重用静态 Faker 实例、批次产生、Lazy 初始化以优化效能;用 Randomizer.Seed = new Random(42) 确保可重现。
适用场景:整合测试、UI 原型、效能测试、数据库种子;单元测试若只验证逻辑可考虑 AutoFixture。
限制:需明确定义规则,学习成本高于自动推断工具;随机性需以 seed 控制才能重现;大量数据时应注意批次与内存。官方文档与 GitHub 仓库为 bchavez/Bogus。