簡體   English   中英

通過方法調用調用 Junit 斷言

[英]Calling Junit Assertions via method call

我正在編寫一個包含 5 個測試方法的Junit 4測試類。 所有這 5 個測試方法都有相同的 10 行assertEquals代碼。

將這些代碼行移動到一種方法中是否是最佳實踐,例如public void callAssertions() { .... }並從所有測試中調用此方法?

正如 matt freake 的評論所提到的 - 通過方法調用調用 Junit 斷言,有不同的意見,但我會做的是性質相似的單獨斷言。

因此,例如,如果您想斷言人的詳細信息,我會將它們分成一個assertPersonDetails()方法 - 其他斷言依此類推。 這實際上取決於下面的業務邏輯。

我不建議像你建議的callAssertions()那樣將它們全部分離成一個通用的命名方法

與所有代碼一樣,您應該確保每個測試和測試中的每個方法都是可讀和可理解的。

你的頂級測試方法應該有一個清晰的模式:給定 X,當 Y,然后 Z。你可以從每個給定/然后/當部分中提取公共代碼,但你不應該混合它們。

所以 assertThatZzzIsConsistent(...) 方法是可以的,如果它只從“then”部分提取。 但是,如果 executeYyyAndAssertThatZzzIsConsistent(...) 結合了 'when' 和 'then' 部分,則它是不合適的。

我認為這是一個更簡潔的解決方案,是的。 就我個人而言,我總是盡可能將所有內容分開,因此每個測試都是完全獨立的。 只要是這種情況就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM