尝试用Bogus生成大规模测试数据集
Trying to generate a large-scale test data set with Bogus
我正在尝试使用 Bogus 生成一个生产质量和数量大小的测试数据集,这个库非常适合基本数据 - 像 int
或 [= 这样的简单数据类型11=]、名字和姓氏等
我目前没有看到如何在我的测试数据设置中处理两种情况:
对于对象的某些属性,我希望能够定义类似 "in 20-30% of the cases, use a NULL
instead of generating a value" 的内容 - 这可能以某种方式实现吗?
在其他情况下,我需要从可用对象列表中随机选择一个对象 - 但我需要使用那个选择的对象来为正在生成的对象设置多个属性。例如。对于 "order",我可能想从给定的可能城市列表中选择一个 "City" - 一旦我有了一个城市,我想设置 CityName
、State
和我的 "order" 对象的 ZipCode
来自那个选定的城市。我还没有找到一种方法来做到这一点(还) - 有接受者吗?
为了提供 null 有时你可以只选择 0-100 范围内的随机数并且仅当它高于阈值时才生成值:
// generate null in 30% of cases
RuleFor(o => o.Item, f => f.Random.Number(0, 100) >= 30 ? f.Name.FullName() : null)
要使用选取的对象 - 只需在后续规则中使用此 属性:
// u in lambda represents whole object
RuleFor(o => o.City, f => f.PickRandom(cities)).
RuleFor(o => o.CityName, (f, u) => u.City.Name)
我正在尝试使用 Bogus 生成一个生产质量和数量大小的测试数据集,这个库非常适合基本数据 - 像 int
或 [= 这样的简单数据类型11=]、名字和姓氏等
我目前没有看到如何在我的测试数据设置中处理两种情况:
对于对象的某些属性,我希望能够定义类似 "in 20-30% of the cases, use a
NULL
instead of generating a value" 的内容 - 这可能以某种方式实现吗?在其他情况下,我需要从可用对象列表中随机选择一个对象 - 但我需要使用那个选择的对象来为正在生成的对象设置多个属性。例如。对于 "order",我可能想从给定的可能城市列表中选择一个 "City" - 一旦我有了一个城市,我想设置
CityName
、State
和我的 "order" 对象的ZipCode
来自那个选定的城市。我还没有找到一种方法来做到这一点(还) - 有接受者吗?
为了提供 null 有时你可以只选择 0-100 范围内的随机数并且仅当它高于阈值时才生成值:
// generate null in 30% of cases RuleFor(o => o.Item, f => f.Random.Number(0, 100) >= 30 ? f.Name.FullName() : null)
要使用选取的对象 - 只需在后续规则中使用此 属性:
// u in lambda represents whole object RuleFor(o => o.City, f => f.PickRandom(cities)). RuleFor(o => o.CityName, (f, u) => u.City.Name)