0

私はこのコードを持っています:

new Expectations(){
    {

    mFubar.getModel();
    result = new Model();
    times = 1;

    mFubar.getModel().getAllDogs();
    result = new HashSet<Dogs>();
    times = 1;
    }
};

残念ながら、私は常に null 値を取得しますmFubar.getModel()。正しく動作するよう
にモック値を作成するにはどうすればよいですか?getModel()mFubar.getModel().getAllDogs();

4

1 に答える 1

0

mFubar.getModel()最初の呼び出しと同様に、への 2 回目の呼び出しで が返されるため、NPE が発生しますnull。記録された結果を期待記録ブロックで使用することはできません。これらの値は、テスト対象のコードからのみ取得することを意図しています。

Modelその上、クラスがここで嘲笑されているようには見えないので、への呼び出しを記録しようとしてgetAllDogs()もうまくいきません。@Mocked Model modelそのためには、モック フィールドまたはモック パラメーターを宣言する必要があります。

最後に、戻り値の型としてコレクション (List、Set、Map など) を持つモック メソッドの既定の戻り値は、既に空のコレクションです。したがって、result = new HashSet<Dog>();とにかく書くことは冗長になります。

于 2013-10-31T14:57:17.373 に答える