This postは、違いがあること(ユーザーSnoopyMeのコメントを参照)と、その2つを同じ意味で使用できることを示唆しています。 EasyMockのマニュアルでは、何の違いについても言及していません。EasyMockの ".andReturn(...)。anyTimes()"と ".andStubReturn(...)"に違いはありますか?
実質的にも意味的にも違いはありますか?そうであれば、いつ他のものを使用するのがより適切ですか?
EDIT:
以下の試験は、厳密モックで使用される少なくともとき、差があることを示唆している:。
@Test
public void testTestMe() {
Bar bar = createStrictMock(Bar.class);
expect(bar.doBar()).andReturn(1).anyTimes();
expect(bar.doOtherBar()).andReturn(2).once();
replay(bar);
Foo foo = new Foo(bar);
foo.testMe();
verify(bar);
}
@Test
public void testTestMeAgain() {
Bar bar = createStrictMock(Bar.class);
expect(bar.doBar()).andStubReturn(1);
expect(bar.doOtherBar()).andReturn(2).once();
replay(bar);
Foo foo = new Foo(bar);
foo.testMe();
verify(bar);
}
public class Foo {
private final Bar _bar;
public Foo(Bar bar) {
_bar = bar;
}
public void testMe() {
_bar.doBar();
_bar.doOtherBar();
_bar.doBar();
}
}
andReturn(...)anyTimes()は依然として、注文を確認これは検証の厳格なモックによって強制される。しかし、StubReturn(...)はそうではありません。
しかし、これが唯一の違いであるのか、それとも意味の違いであるのかはまだ分かりません。たとえば、anyTimes()は標準(厳密ではない)モックのstubReturn()と同じですか?