通常,在构造函数中有很多参数是对错误概念的暗示。你最好重新考虑你的对象和类,以减少给构造函数的参数。
如果您不想这样做,您仍然可以使用某种“TestUtil”来为您实例化类。
例子 :
public class MyTestUtils {
public createValidFirstClass() {
return new FirstClass(/* some arguments here */);
}
public createValidSecondClass() {
return new SecondClass(/* Some arguments here */);
}
public createValidThridClass() {
return new ThridClass(/* Some arguments here */);
}
public createValidExampleClass() {
return new ExampleClass(createValidFirstClass(), createValidSecondClass(), createValidThridClass());
}
}
这个类必须在你的测试包中而不是在你的项目中,并且不应该在测试之外使用,这将是一个非常糟糕的做法,在你的实际项目中使用 Factory 或 Builder。
无论如何,我认为最好的解决方案是重新考虑你的课程。
例子 :
public class People {
public People(String firstName, String lastName, Date birth, Date death) {
}
}
正如您所看到的,控制所有给定参数的格式正确且不为空是一件很痛苦的事情。
可以通过这种方式减少传递给方法的参数数量。
public class People {
public People(PeopleNames names, Period period) {
}
}
public class PeopleNames {
public People(String firstName, String lastName) {
}
}
public class PeopleNames {
public People(Date begin, Date end) {
}
}