java - 使用 Mockito isEmpty 的模拟列表始终返回 false,即使大小为 0

标签 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 吗?

最佳答案

我认为发生这种情况是因为mockito不知道isEmpty()的语义,并且当它遇到 boolean 方法时,会使用默认值false来模拟它。同样的想法也适用于 size(),但这里的默认值为 0

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

关于java - 使用 Mockito isEmpty 的模拟列表始终返回 false,即使大小为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049245/

相关文章:

java - 实现匿名用户投票

java - last.fm java API 获取数据范围内用户的最近轨迹

java - 为什么 Java 语言环境不是常量?

java - hamcrest 匹配器和 argThat 方法的问题

java - Mockito - 是否有 "value not in List"的匹配器?

java - Map of Locks 是并发操作的安全方法吗

node.js - 在测试中模拟对外部服务的 axios 请求

unit-testing - 在 Spock 单元测试中,没有调用模拟方法

java - jUnit 意外方法调用 DAO Easymock

java - 如何在 java 的 Mockito 中 stub instanseof?