2011-12-22 57 views

回答

9

它沒有在設計時考慮,現在出於穩定原因,這種行爲沒有改變。

有一個非公開的答案,稱爲ReturnsMoreEmptyValues,返回類型名稱表示更多的空值。

你也可以看看在內部使用了ReturnsMoreEmptyValues的Mockito.RETURNS_SMART_NULLS答案,並且提供了更有趣的調試信息。

注意這個鏈接到1.10.19版本的javadoc,但是在編寫本文時這個行爲在2.x版本中保持不變。

+0

鏈路斷開 – 8bitjunkie 2018-03-08 23:12:37

+0

@ 8bitjunkie感謝,更新了! – Brice 2018-03-09 08:20:43

0

根據所有非集合和非簡單類型的Mockito代碼,它返回null。字符串是Object的一個子類型,它的「空白」值爲空,而不是「」.IMHO如果您將字符串的空值表示爲空或「」,這是一個設計決定。

1
  1. 因爲中的Mockito設計師決定使用它作爲默認
  2. 因爲空也是一個Java對象
10

從您發佈的鏈接字段的默認值;

每個Mockito模擬的默認答案。

  • 返回適當原語原語返回方法
  • 返回爲原始包裝類一致的值(例如INT-返回方法retuns 0和整數返回方法返回0, 太)爲
  • 返回空集合集合返回方法(適用於大多數常用的集合類型)模擬對toString()方法
  • 返回描述
  • 返回null一切

從常見問題:

不要嘲笑默認情況下返回什麼樣的價值觀?

爲了透明和不引人注目所有嘲笑的Mockito通過 默認返回「好」的值。例如:零,falseys,空 集合或空值。

這可能是爲了與任何其他非收集,非原始包裝對象返回null的方法保持一致。

你總是可以實現你自己的Answer傳遞給mock,它返回字符串返回方法的空字符串。

相關問題