我正在和Mockito(1.9.5)一起玩,并坚持第一个简单的测试用例:
List mockedList = mock(ArrayList.class);
assertEquals(0, mockedList.size()); // Passed
assertTrue(mockedList.isEmpty()); // Failed
任何人都可以解释为什么isEmpty()返回false而size()返回0?
答案 0 :(得分:11)
我认为这是因为mockito不知道isEmpty()
的语义含义,当遇到布尔方法时,它会使用false
的默认值进行模拟。同样的想法与size()
相同,但此处的默认值为0
。
基本上,您需要定义模拟对象的预期行为。如果不这样做,它将返回默认值。