私は特定のメソッドのjunitテストを書いています。このメソッドには、EasyMockでモックしているDAOクラスの他のメソッドへの呼び出しが含まれています。
これらのDAOクラスメソッドの1つが1回呼び出されることを表明したいと思います。これは、expectLastCall()。once()の目的であると私が想定しているものです。問題のメソッドはvoidを返します。
私が現在合格しているテストです。これまでEasyMockを使用したことがないので、ロジックが正しいことを確認したいだけです。私はこの質問を参照として使用しました:voidメソッドを使用したEasyMockの期待
だから、ここにコードがあります:
@Before
public void setUp() throws Exception{
this.fooService = new FooService();
this.fooMock = createStrictMock(FooDAO.class);
}
@Test
public void test_fooTest(){
String arg1 = "arg1";
String arg2 = "arg2";
this.fooService.setFooDAO(fooMock);
expect(this.fooMock.someMethod(arg1, arg2)).andReturn(something);
fooMock.methodThatShouldBeCalledOnce(EasyMock.<Object>anyObject());
EasyMock.expectLastCall().once();
replay(this.fooMock);
this.fooService.methodUnderTest(someArg, someArg2);
verify(this.fooMock);
}
これが行うと思うのは、methodThatShouldBeCalledOnceの呼び出しがあり、それが1回だけ発生することを表明することです。someMethodについてはあまり気にしませんが、もちろん、EasyMockは、それを期待するように指示されていない場合は文句を言います。
ありがとうございました!