2011-06-15 101 views
1

我目前正在尝试学习如何使用easymock。我有以下代码:EasyMock返回奇怪值

List list = EasyMock.createMock(List.class); 
EasyMock.expect(list.size()).andReturn(0); 
EasyMock.replay(list); 
EasyMock.verify(list); 

这对我来说,至少应该工作 - 一个列表与什么也没有初始化,大小应该返回0。我碰到下面的错误,但是:

java.lang.AssertionError: 
Expectation failure on verify: 
size(): expected: 1, actual: 0 

我认为这很奇怪,所以我将0中的0改为1并重新测试。我得到了同样的错误。有谁知道我做错了什么?提前致谢!

回答

6

replay之后和verify之前,您需要调用使用您的模拟的代码。该代码需要调用预期的方法(在这种情况下为size),而只有该方法。这个错误信息意味着你将模拟设置为期望一个方法调用,但是当你去验证时,你从来没有在模拟上调用该方法,这是有道理的,因为你从来没有使用模拟。

+0

是的,你说得对。我在阅读的教程中错过了愚蠢的初学者错误。谢谢! – 2011-06-15 23:16:35

+0

@dorrene,np,这就是为什么存在。 – hvgotcodes 2011-06-15 23:18:27