當某個對象具有裝箱類型屬性時,屬性的獲取方返回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