【发布时间】:2015-12-24 02:18:48
【问题描述】:
我正在编写包含大量测试用例 (50+) 的集成测试类。我必须在每个测试方法中创建多个不同类型的对象。由于每个测试中有大量测试方法和多个对象创建,我的测试类变得非常庞大。我需要有关如何使其不那么冗长和易于理解的建议。
到目前为止我所做的 - 我需要创建的对象很复杂。例如,对象 A 具有对象 B,对象 B 具有对象 C 的列表,其中对象 C 具有字段 - 值。我需要创建一个值为 5 的对象 A 的实例。所以我将所有这些代码移动到另一个类,并使用方法 - buildWithValue() 将其称为 ABuilder。现在在测试类中,我只需执行 Abuilder.buildWithValue(5)。这从主测试类中删除了一些代码。
但是现在我有多个这样的builder BBuilder,CBuilder。我应该将所有这些构建器移到一个抽象构建器还是什么的?像 GenericBuilder 这样的东西作为输入 Builder 类型和其他参数来构建一个对象,即使我这样做,行数也不会减少太多。
那么,我可以这样做吗 - 使用接受三个值(不同数据类型)的方法创建一个通用构建器 - 我的 ABuilder、BBuilder 和 CBuilder 所需的 value1、value2、value3。这样做我的测试方法将只有一行 GenericBuild.createObjects(A1,B1,C1)
或者我应该根据某些标准将测试类分成两部分吗?
请推荐
【问题讨论】:
-
你为什么不在类中创建一个函数来创建一个A类对象。在我看来,创建一个仅用于测试目的的类不是一个好方法。
标签: java integration-testing builder factory-pattern