当某个对象具有装箱类型属性时,属性的获取方返回0
。但是这应该返回null
,因为盒装类型属性的默认值是null
。这里有什么问题?为什么Mockito的模拟返回0时应该返回null?
class Person {
private Long id;
public Long getId() {
return id;
}
}
...
@Mock Person person;
...
person.getId(); // 0 instead of null
此代码无法编译:getId()方法的返回类型丢失。这很重要,因为如果它是Long,那么默认值(对于未初始化的对象)为null。如果它很长,那么未初始化的longs(primitives)的值是0,但在这种情况下,当尝试解开null Double时,我会期待NullPointerException。但请纠正代码? – Paul 2014-10-28 08:12:19
@保罗哦,谢谢你的发现。固定。 – 2014-10-28 08:20:01