测试返回实例的静态方法

时间:2021-05-26 01:21:55

标签: java static

我写了一个包含所有静态方法的类。有一个用于返回实例的主要静态方法,然后是其他辅助静态方法。我现在意识到,如果不使用 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";
    }
}
 

0 个答案:

没有答案