尝试使用Bogus生成大规模测试数据集

时间:2018-04-25 10:55:15

标签: c# testing data-generation bogus

我正在尝试使用Bogus生成一个生产质量和数量级的测试数据集,这个库可以很好地处理基本数据 - 像int或{{1}这样的简单数据类型,诸如名字和姓氏之类的东西等。

我目前还没有看到如何在测试数据设置中处理两种情况:

  • 对于某个对象的某些属性,我希望能够定义类似“在20-30%的情况下,使用string而不是生成值” - 这是可能不知何故?

  • 在其他情况下,我需要从可用对象列表中随机选择一个对象 - 但我需要使用那个,拾取的对象在我生成的对象上设置多个属性。例如。对于“订单”,我可能想从给定的可能城市列表中选择一个“城市” - 一旦我有一个城市,我想设置NULLCityName和{{1来自那个选定城市的“订单”对象。我还没有找到办法(尚未) - 任何参与者?

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)