powermock
ライブラリを使用すると、最終的なオブジェクトをモックできます。これはWikiの実装です。
テストクラス:
public class StateFormatter {
private final StateHolder stateHolder;
public StateFormatter(StateHolder stateHolder) {
this.stateHolder = stateHolder;
}
public String getFormattedState() {
String safeState = "State information is missing";
final String actualState = stateHolder.getState();
if (actualState != null) {
safeState = actualState;
}
return safeState;
}
}
テストスニペット:
StateHolder stateHolderMock = createMock(StateHolder.class);
StateFormatter tested = new StateFormatter(stateHolderMock);
expect(stateHolderMock.getState()).andReturn(expectedState);
// PowerMock.replay(..) must be used.
replay(stateHolderMock);
あなたはfull sample hereを見つけることができます。
A
クラスのコンストラクタをパラメータ化する必要があります。
B
がpowermock
クラスB(Bmock = mock(B.class))のモックを作成したら、それを注入する必要があります(A a = new A(bmock))、またはsetterメソッド(A a = new A(); a.setB(bmock))を使用して、クラスAのインスタンスに変換します。 –
まだ動作していないようですが、期待どおりに動作していません。 – user304611