私は、別のクラスのインスタンスを返す以下のシングルトンを持っています。返されたインスタンスオブジェクトにメソッドをモックしたい。私は最終クラスとシングルトンのためのPowerMockモッキング機能を読んできましたが、私のケースがそれらの下にあるかどうかはわかりません。私はいくつかの提案を感謝します。PowerMockを使用したシングルトンのgetInstanceのモーグ
when(SomeWrapper.getInstance().getMyActualObject().isActive()).thenReturn(false);
は、私がSomeWrapperとMyActualObjectを模擬する必要があります
public final class SomeWrapper {
private MyActualObject MyActualObject;
private static final SomeWrapper instance = new SomeWrapper();
private SomeWrapper() {
// singleton
}
public static SomeWrapper getInstance() {
return instance;
}
public void setMyActualObject(MyActualObject MyActualObject) {
if(this.MyActualObject == null) {
this.MyActualObject = MyActualObject;
} else {
throw new UnsupportedOperationException("MyActualObject is already set, cannot reset.");
}
}
public MyActualObject getMyActualObject() {
return MyActualObject;
}
}
は、だから今、私のユニットテストでは、私はモック次の行をしたいですか?ガイダンスとしてのコードサンプル?
最初にJavaシネルパターンを使用しないでください。 (これはあなたのアプリケーションがシンクルトンオブジェクトを持つべきではないということを意味するものではありません...)sigeltonクラスをpublicコンストラクタを持つ通常のクラスにします。 –