静的メソッド呼び出しに大きく依存するレガシーコードをテストしようとしています。
基本的に、メソッドb()とc()を持つクラスAがあります。Ab()はvoidを返し、Ac()は値を返します。
実際のAb()が呼び出された場合、テスト対象のクラスは例外をスローするため、何もする必要はありません。ただし、使用する場合:
PowerMockito.spy(A.class);
PowerMockito.doNothing().when(A.class);
次に、Ac()をモックして必要な値を返すことはできません。これは、ラインが
PowerMockito.when(A.c()).thenReturn(value);
例外をスローします:Only void methods can doNothing()
。
Ab()に何もせず、Ac()を「オーバーライド」して正しい値を返す方法はありますか?