【发布时间】:2013-02-21 06:34:28
【问题描述】:
我正在为特定方法编写一个 junit 测试。该方法包含对我正在使用 EasyMock 模拟的 DAO 类中的其他方法的调用。
我想断言这些 DAO 类方法之一被调用一次,这就是我假设 expectLastCall().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 的调用并且它只发生一次。我并不真正关心 someMethod 但如果没有告诉它期待它,EasyMock 当然会抱怨。
谢谢!
【问题讨论】:
标签: unit-testing junit easymock