8

モックオブジェクトの同じインスタンスで特定の期待を再定義することは可能ですか?

OK を検証するこのテストがあるとします。

List<String> foo = createMock(List.class);
expect(foo.get(1)).andReturn("Wibble").once();
expect(foo.size()).andReturn(1).once();
replay(foo);
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);

私が次にやりたいことは、モックをリセットし、定義された期待値をすべて維持しながら、そのうちの 1 つを変更することです。

reset(foo);
// Redefine just one of the two expectations
expect(foo.get(1)).andReturn("Wobble").once();                
System.out.println(foo.get(1));
System.out.println(foo.size());
verify(foo);

リセット呼び出し後に foo.size が定義されていないため、現時点では機能しません。

毎回期待を再構築するのではなく、これを行うための良い方法である必要がありますか?

前もって感謝します

4

1 に答える 1

2

期待値を関数として記述し、期待される引数を引数として渡すことはできますか? それは私が以前に行ったことです。

private List<String> setExpectations(String expectedString) {
  List<String> foo = createMock(List.class);
  expect(foo.get(0)).andReturn(expectedString).once();
  expect(foo.size()).andReturn(1).once();
  replay(foo);
  return foo;
}

プラス: 0 番目の文字列を返します。はい?

于 2010-06-27T17:20:27.293 に答える