0
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値を取得させないようにするにはどうすればよいですか?特に、他の変数がオブジェクトごとに変わる可能性がある場合(このコードは汎用である必要があります)?

4

2 に答える 2

1

この場合、正しい方法ではないようspy(..)です。mock(...)モックオブジェクトが注入されたことはまだテストしていませんが、テストしたと思います。

于 2013-02-17T12:42:53.807 に答える
0

@RunWith(MockitoJUnitRunner.class)テストクラスにアノテーションを追加します。

于 2013-07-27T02:24:22.500 に答える