我正在尝试使用Bogus生成一个生产质量和数量级的测试数据集,这个库可以很好地处理基本数据 - 像int
或{{1}这样的简单数据类型,诸如名字和姓氏之类的东西等。
我目前还没有看到如何在测试数据设置中处理两种情况:
对于某个对象的某些属性,我希望能够定义类似“在20-30%的情况下,使用string
而不是生成值” - 这是可能不知何故?
在其他情况下,我需要从可用对象列表中随机选择一个对象 - 但我需要使用那个,拾取的对象在我生成的对象上设置多个属性。例如。对于“订单”,我可能想从给定的可能城市列表中选择一个“城市” - 一旦我有一个城市,我想设置NULL
,CityName
和{{1来自那个选定城市的“订单”对象。我还没有找到办法(尚未) - 任何参与者?
答案 0 :(得分:2)
要提供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)