Java 减少测试类中的代码行数(生成器-工厂模式)

Java 减少测试类中的代码行数(生成器-工厂模式),java,integration-testing,builder,factory-pattern,Java,Integration Testing,Builder,Factory Pattern,我正在编写集成测试类,它有很多测试用例(50+)。我必须在每个测试方法中创建多个不同类型的对象。由于在每个测试中有大量的测试方法和多个对象的创建,我的测试类变得非常庞大。我需要关于如何使它不那么冗长和易懂的建议 到目前为止,我所做的是——我需要创建的对象是复杂的。例如,对象A有对象B,对象B有对象C的列表,对象C有字段值。我需要创建一个值为5的对象实例。因此,我将所有这些代码移到了另一个类中,并使用方法-buildWithValue()调用了它。现在在测试类中,我只需执行一个bilder.bui

我正在编写集成测试类,它有很多测试用例(50+)。我必须在每个测试方法中创建多个不同类型的对象。由于在每个测试中有大量的测试方法和多个对象的创建,我的测试类变得非常庞大。我需要关于如何使它不那么冗长和易懂的建议

到目前为止,我所做的是——我需要创建的对象是复杂的。例如,对象A有对象B,对象B有对象C的列表,对象C有字段值。我需要创建一个值为5的对象实例。因此,我将所有这些代码移到了另一个类中,并使用方法-buildWithValue()调用了它。现在在测试类中,我只需执行一个bilder.buildWithValue(5)。这从主测试类中删除了一些代码

但现在我有多个这样的建设者BBuilder,CBuilder。我应该把所有这些构建器都移动到抽象构建器还是什么?类似于GenericBuilder,它使用输入生成器类型和其他参数来构建对象,即使我这样做,行数也不会减少很多

因此,我可以这样做吗?创建一个通用生成器,其方法接受三个值(不同的数据类型)——value1、value2、value3,这是我的ABuilder、BBuilder和CBuilder所需要的。这样做,我的测试方法只有一行GenericBuild.createObjects(A1、B1、C1)

或者我应该根据一些标准将测试类一分为二


请建议使用

而不是构建器模式,我允许将嵌套对象构建和持久化为JSON、XML或任何人机可读的格式。您可以在文本编辑器中轻松地创建新对象,将文本文件放在/src/test/resources文件夹中(例如,如果您使用的是maven),并在测试用例中根据需要构造它们

为什么不在类中创建一个函数来创建一个类a对象呢。在我看来,创建一个只用于测试的类不是一个好方法。你能详细说明一下你说的是什么意思吗?你可以在文本编辑器中轻松创建新对象,将文本文件放在/src/test/resources文件夹中。可能是一个小例子,就个人而言,我发现Java代码比JSON或XML更具可读性(更不用说更灵活、功能更强大、类型更安全、性能更好);只要为数据创建设计一组好的助手类/方法,并在测试中使用它们。@Rogério这就是我的观点。JSON只是使数据的编辑更容易