【发布时间】:2014-10-07 23:31:59
【问题描述】:
我建议在我们公司使用 AutoFixture 和 AutoFixture.xUnit,并且已经得到授权,对于某些对象和字段,他们需要以预期方式格式化的随机数据。例如,他们希望 PersonName 只填充真实的名称(而不是 GUID),而 PhoneNumber 只填充看起来像电话号码的字符串。但他们不想在执行此操作的实际对象中添加数据注释,他们只是希望 AutoFixture 生成的测试数据漂亮。
我已经处理了一些 ICustomize 类以在一些类上实现贪婪的构造函数行为。是否有类似的方法来覆盖特定对象的数据生成? (例如)从列表中提取名称,或生成数据以遵循某个正则表达式? (请记住,我实际上不能将这些正则表达式作为属性添加到模型上)
【问题讨论】:
-
这是一个 PoC:blog.ploeh.dk/2010/11/22/…
-
这很有趣也很有帮助,谢谢。不幸的是,至少正如在博客文章中设置的那样,它似乎不知道如何处理通过构造函数传入的项目。我将继续寻找在每个类的基础上进行自定义的方法,并希望 ObjectHydrator 能够生成数据。
-
在博文中,它的目标是
PropertyInfo对象。尝试定位ParameterInfo对象,你应该很高兴。 -
这听起来很完美,但我很难弄清楚如何做到这一点,至少在不修改 ObjectHydrator 源的情况下。据我所知,我不能只将示例中的实例更改为 ParameterInfo,因为它们正在与定义 PropertyInfo 的 IMap(在 ObjectHydrator 中)进行比较。关于我需要做些什么来定位 ParameterInfo 有什么建议吗?
-
啊,对了,好久没看那个代码了。你是对的。 ObjectHydrator 看起来像是耦合到 PropertyInfo...
标签: c# unit-testing xunit autofixture automoq