我正在爲特定方法編寫junit測試。該方法包含調用DAO類中的其他方法,我正在使用EasyMock進行模擬。正確使用expectLastCall()。一次()在EasyMock
我想斷言這些DAO類方法之一被調用一次,這是我所期望的LastCall()。once()的用途。有問題的方法返回void。
我目前通過的測試中,我只是想確保我的邏輯是正確的,因爲我之前沒有使用過EasyMock。我用這個問題作爲一個參考:EasyMock expectations with void methods
所以,這裏是代碼:
@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一個電話,它只會發生一次。我並不真正關心某些方法,但是當然EasyMock會抱怨說,如果沒有告訴我們期望它。
謝謝!
是的,它失敗在這兩個場景中,謝謝。 – user1088166 2013-03-06 14:22:32