我正在使用Object Mother进行单元测试,我不想编写所有 OM 类 == 重复的类结构。是否可以创建一些会自动生成 OM 类的基本 OM 类?
class MyNewObjectMother: ObjectMother<SomeClass>{}
这应该将所有属性创建为 public 和 CreateInstance 方法,该方法创建类对象并注入所有属性。可能吗?最佳做法是什么?或者可能是一些自动 T4 代码生成等。谢谢。
我正在使用Object Mother进行单元测试,我不想编写所有 OM 类 == 重复的类结构。是否可以创建一些会自动生成 OM 类的基本 OM 类?
class MyNewObjectMother: ObjectMother<SomeClass>{}
这应该将所有属性创建为 public 和 CreateInstance 方法,该方法创建类对象并注入所有属性。可能吗?最佳做法是什么?或者可能是一些自动 T4 代码生成等。谢谢。
正如 shamp00 所指出的,Object Mother 的一个更易于维护的替代方案是Test Data Builder 模式。除了 NBuilder,您还可以考虑AutoFixture,它也实现了 Test Data Builder 模式。
它将使您能够像这样创建测试实例:
var sc = fixture.Build<SomeClass>().With(x => x.Foo, "Foo").Build();
以及许多其他功能;上面的例子实际上只是表面上的。
您也可以尝试 DTO 的 T4 模板: http ://www.taimila.com/blog/dto-builders-with-t4/
它可能很有用