我正在使用Object Mother进行单元测试,我不想编写所有OM类==重复的类结构。 是否可以创建一些自动生成OM类的基类OM类?
class MyNewObjectMother: ObjectMother<SomeClass>{}
这应该创建所有属性public和方法CreateInstance,它们创建类对象并注入所有属性。 可能吗?什么是最佳做法?或者可能是一些自动T4代码生成等。 感谢。
答案 0 :(得分:3)
你应该看看NBuilder。它与ObjectMother略有不同(参见this blog post)。
您可以执行
之类的操作Builder<Product>.CreateNew().With(x => x.Title = "some title").Build();
Builder<Product>.CreateListOfSize(10).WhereAll().Have(x => x.Title = "some title").Build();
答案 1 :(得分:2)
正如Shamp00指出的那样,对象母亲的一种更易于维护的替代方法是Test Data Builder pattern。除了NBuilder之外,您还可以考虑AutoFixture,它也实现了测试数据生成器模式。
它使您能够创建如下的测试实例:
var sc = fixture.Build<SomeClass>().With(x => x.Foo, "Foo").Build();
以及许多其他功能;上面的例子实际上只是划伤了表面。
答案 2 :(得分:0)
您还可以尝试使用T4模板进行DTO: http://www.taimila.com/blog/dto-builders-with-t4/
它很有用