|
1
21
|
|
|
2
7
见“ Test Data Builders: an alternative to the Object Mother pattern “有关为什么使用测试数据生成器而不是对象母亲的参数。它解释了这两者都是什么。 |
|
|
3
1
如其他地方所述,objectmeem是一个通常用于生成对象的工厂 (专用?) 用于单元测试。 它们的主要用途是在数据对测试没有特殊意义的情况下生成复杂的对象。 您可能在下面创建了一个空实例,例如
你应该用反对者的明智的方式。
这有助于处理测试类开始依赖于传入的敏感对象的情况。 例如,如果您向上面的order类添加了一些ordernumber验证,那么您只需要在simpleobject类上实例化ordernumber,以便通过所有现有测试,从而使您集中精力编写验证测试。 如果您刚刚在测试中实例化了对象,那么您需要将其添加到每个测试中(我经常看到人们这样做,这让人震惊)。 当然,这可以直接提取到一个方法中,但是将它放在一个单独的类中可以让它在多个测试类之间共享。 另一个推荐的行为是为方法使用好的描述性名称,以促进重用。每次测试都很容易得到一个对象,这是绝对要避免的。最好生成表示常规属性而不是特定属性的对象,然后为测试定制。例如,objectmeam.wealthycustomer()而不是objectmeam.customerwith1MollarsSharesinBigPharmandDrivesAporsche()和objectmeam.customerwith1MollarsSharesinBigPharmandDrivesAporscheandFerrari()。 |