テストする次のコードがあります。
Public MyClass() {
public static final boolean myFunc(int param1, String param2, long param3) {
SomeInterface var1 = SomeEnumImplementingSomeInterface.INSTANCE;
SomeOtherInterface var2 = var1.getInstanceOfSomeOtherInterface();
String str = var2.getValue();
if (str.equals("ABCD"))
return true;
else
return false;
}
}
ここでモック化されたオブジェクトを var1 に割り当てる方法はありますか?
私が考えることができる 1 つの方法は、var1 をクラス変数として宣言し (この場合、それにアクセスするメソッドが静的であるため、静的でなければなりません)、ホワイトボックス化によってモック オブジェクトをそれに割り当てます。しかし、テストのためだけにデザインを変更したくありません。
クラス設計の変更を私に提案しないでください。