我写了一个包含所有静态方法的类。有一个用于返回实例的主要静态方法,然后是其他辅助静态方法。我现在意识到,如果不使用 PowerMock,就不可能对此进行测试,我想避免这种情况。重构此类以使其可测试的最佳方法是什么?
public class MyClass {
private final String str1;
private final String str2;
private final String str3;
private MyClass(String str1, String st2, String str3) {
this.str1 = str1;
this.str2 = str2;
this.str2 = str3;
}
public static MyClass getMyClassInstance() {
str1 = staticHelperMethod("str1");
str2 = staticHelperMethod("str2");
str3 = staticHelperMethod("str3");
if (str1 == null) {
str1 = otherStaticHelperMethod("default");
}
if (str2 == null) {
str2 = otherStaticHelperMethod("default");
}
if (str3 == null) {
str3 = otherStaticHelperMethod("default");
}
return new MyClass(str1, str2, str3);
}
private static String staticHelperMethod(String str) {
return System.getEnv(str);
}
private static String otherStaticHelperMethod(String str) {
return "DEFAULT";
}
}