シナリオは次のとおりです。
public class classA implements classRandom {
public void methodA(arg1, arg2) {
POJOb objB;
objB = SingletonClass_Instance().singletonMethodA(arg1);
}
public SingletonClass SingletonClass_Instance() {
return SingletonClass.getInstance();
}
}
public class SingletonClass {
public objB singletonMethodA(final String arg1) {
return randomObj;
}
}
クラス A の methodA の単体テストを作成しています。このために、次のスタブ コードを作成しました。
SingletonClass mockSingletonClass = PowerMockito.mock(SingletonClass.class);
POJOb = PowerMockito.mock(POJOb.class);
Mockito.when(mockSingletonClass.singletonMethodA(Mockito.anyString())).thenReturn(POJOb);
このコードの直後に、コードがあります:
POJOb objB = classA_Object.methodA(arg1, arg2);
このコードは、次のようになるとすぐに失敗します。
**methodA --> SingletonClass_Instance().singletonMethodA**
私はすでに次の Powermockito 手順を使用しています。
1) import PM libs
2) Added @PrepareForTest({SingletonClass.class, POJOb.class})
それでも、SingletonClass の Public/Void メソッドをモックできません。それらは常にnullになります。