使用Mockito isEmpty的模拟列表总是返回false,即使大小为0

时间:2012-06-15 10:48:45

标签: java mocking mockito

我正在和Mockito(1.9.5)一起玩,并坚持第一个简单的测试用例:

List mockedList = mock(ArrayList.class);
assertEquals(0, mockedList.size()); // Passed
assertTrue(mockedList.isEmpty()); // Failed

任何人都可以解释为什么isEmpty()返回false而size()返回0?

1 个答案:

答案 0 :(得分:11)

我认为这是因为mockito不知道isEmpty()的语义含义,当遇到布尔方法时,它会使用false的默认值进行模拟。同样的想法与size()相同,但此处的默认值为0

基本上,您需要定义模拟对象的预期行为。如果不这样做,它将返回默认值。