2015-10-26 44 views
1

適用於java junits測試方法的命名約定是什麼?適用於junit測試方法的命名約定

公共無效testServiceName_NullValue() 或 公共無效testServiceName_nullValue()

有什麼建議?

謝謝

+0

沒有約定。我個人更喜歡尊重Java命名約定(沒有下劃線)的東西,並且應該以should開頭:public void shouldThrowWhenNullArgument(),public void shouldReturnTrueWhenValidArgument()',等等。它允許在IDE中搜索或調用調用層次時從生產方法中識別測試方法。 –

回答

2

我沒有看到一個標準,不像一般的編碼(例如谷歌的)。然而,在我的團隊中,我們認爲測試名稱應該清楚地說明它的作用,即使結果名稱比通常的方法名稱長得多。由此產生的名稱最終不會太長,因爲測試應該只關注一件事情。否則,你應該重新考慮你的測試範圍或你的單位的設計。

具體而言,我們傾向於遵循約定if/whenConditionThenExpectedState/Behavior。我們省略了測試前綴,該前綴在今天是不必要的,並且不增加名稱的價值。

+2

個人而言,我傾向於使用下劃線,例如methodName_should_throw_exception_if_value_is_null()。這個想法很簡單,就是沒有人會用手調用這個方法,只有當你真正看到它是測試失敗的時候,所以使它更具可讀性才能勝過傳統的命名約定。 –