在 Java 测试中使用 Mockito 有段时日了,之前只是想固然的认为 Mock 的对象属性值和方法返回值都是依据一样的规则。基本类型是 0, 0.0, 或 false, 对象类型都是 null, Mock 对象的默认返回值也应该是同样的。直到最近有一天,有一个返回 Optional<String>
类型的方法,因为忘记对该方法打桩,意外的发现它返回的不是 null, 而 Optional.empty()
, 所以才意识到此处定有蹊跷。着实有必要用代码验证一下 Mockito 是怎么决定属性及方法的各类返回类型的默认值的。测试
这次测试所用的 Mockito 版本是 mockito-core-2.12.0.code
因而建立了下面一个类 MyClass 用于生成 Mock 对象,选取了一些典型的数据类型, 包括 int, Double, String, long[], Optional<String>, Collection<String>, Map<String, String>, 同时测试 Mock 对象默认的属性值与方法默认返回值。 阅读全文 >>对象