public class TargetObjectWrapper extends TargetObject {
@Mock SomeObject myMockOfSomeObject;
@InjectMocks TargetObject targetObject;
public TargetObjectWrapper(){
this.targetObject = mock(originalObject);
//doAnswer(...).when(...) methods
}
//Override other methods of TargetObject
}
特定のモックオブジェクトをの1つのフィールドに挿入しようとしていtargetObject
ます。targetObjectには、常にこの特定の署名を持つフィールドがあることを私は知っています。
これはすべて機能します。正常に注入myMockOfSomeObject
し、呼び出しを適切にリダイレクトできます。
ただし、TargetObjectクラスに以下の簡単な例のような他のフィールドが含まれている場合、元のオブジェクトにリクエストを渡すと、そのフィールドはnullになり、nullポインター例外が発生します。
Log log = LogFactory.getLog(getClass());
他のオブジェクトにnull値を取得させないようにするにはどうすればよいですか?特に、他の変数がオブジェクトごとに変わる可能性がある場合(このコードは汎用である必要があります)?