Bogus for C# (.NET): 完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 Bogus,为什么需要它?

\n\n

Bogus 是一个强大、简单且快速的库,用于在 C# (.NET) 中生成虚假(测试)数据。它是流行的 JavaScript 库 Faker.js 的直接移植。Bogus 的主要目标是让开发人员免于手动编写用于创建测试数据集的样板代码。

\n\n

为什么需要它?假设您正在开发一个与用户、订单、产品或任何其他实体打交道的应用程序。为了测试功能(单元测试、集成测试、压力测试),您经常需要数据:姓名、地址、电子邮件、电话号码、文本、数字、日期等。手动创建 1000 个包含不同数据的 User 对象既繁琐、耗时又容易出错。Bogus 用一行代码就解决了这个问题。

\n\n

Bogus 的主要优势:

\n
    \n
  • 本地化: 支持数十种语言和区域格式(ru、en、de、fr 等)。
  • \n
  • 灵活性: 您可以根据业务规则生成数据(例如,“价格必须大于 0 且小于 1000”)。
  • \n
  • 可重复性: 通过使用种子(seed),您可以在每次运行时获得相同的数据集——这对于可重现的测试至关重要。
  • \n
  • 性能: Bogus 经过优化,可以在几秒钟内生成数百万条记录。
  • \n
  • 类型安全: 与您自己的类和接口一起使用,利用 C# 的强类型特性。
  • \n
\n\n

安装 Bogus

\n\n

Bogus 作为 NuGet 包分发。可以通过多种方式安装它:

\n\n

1. 通过 .NET CLI(推荐)

\n
dotnet add package Bogus
\n\n

2. 通过包管理器控制台(Visual Studio)

\n
Install-Package Bogus
\n\n

3. 通过 Visual Studio 中的 NuGet 包管理器界面

\n

打开“管理 NuGet 包”,找到“Bogus”,然后点击“安装”。

\n\n

安装后,在您的代码中添加 using 指令:

\n
using Bogus;
\n\n

快速入门:第一个示例

\n\n

让我们生成一个简单的 Person 对象集合,包含俄语姓名和地址。

\n\n
using Bogus;\n\n// 1. 创建用于生成数据的“规则”(Faker)\n//    指定区域设置为“ru”以获取俄语数据\nvar faker = new Faker("ru");\n\n// 2. 生成 10 个虚构人物\nfor (int i = 0; i < 10; i++)\n{\n    var person = new\n    {\n        Name = faker.Name.FullName(),    // 全名\n        Email = faker.Internet.Email(),  // 电子邮件\n        Phone = faker.Phone.PhoneNumber(), // 电话号码\n        City = faker.Address.City(),     // 城市\n        Age = faker.Random.Int(18, 80)   // 年龄 18 到 80 岁\n    };\n\n    Console.WriteLine($"{person.Name}, {person.Age} 岁, {person.City}, {person.Email}, {person.Phone}");\n}\n\n// 输出示例(每次运行都会改变):\n// 伊万诺夫·伊万·彼得罗维奇, 34 岁, 莫斯科, ivanov@example.com, +7 (495) 123-45-67\n// 彼得罗娃·安娜·谢尔盖耶夫娜, 27 岁, 圣彼得堡, petrova@test.ru, +7 (812) 987-65-43\n// ...
\n\n

它是如何工作的?new Faker("ru") 创建了主生成器对象。它的属性 Name、Internet、Phone、Address、Random 是内置的“类别”(API),每个类别都包含数十个用于生成特定数据的方法。

\n\n

Bogus 的主要方法和功能

\n\n

Bogus 提供了大量的方法。以下是 10 多个最常用的类别及其关键方法,并附有详细示例。

\n\n

1. Name — 生成姓名

\n

功能: 生成名字、姓氏、父名(针对俄语区域设置)、全名、前缀和后缀。

\n

参数:

推荐