Java單元測試之測私有方法

2021-08-28 13:10:48 字數 927 閱讀 6991

ut的被測單元往往為private方法,由於業務演算法邏輯等常在private方法中,對其進行ut是很必要的。

如何對private方法進行ut,大致有如下方式,雖然不同方式在不同團隊或個人有爭議性,但最終需團隊成員達成一致性。才能保證風格。

方式1:

將被測private方法改為包級的或者public。

object methodtoexecute(object... arguments)

優點:省事。

缺點:**層級和性質發生了變化,不符合**匠藝精神。

方式2:

private object methodtoexecute(object... arguments)

object junit_methodtoexecute(object... arguments)

如上,新增乙個呼叫被測方法的包級方法,該方法團隊統一字首junit_ 用於標誌單元測試調。

優點:便於後續重構,**職責比較清楚;

缺點:反對者認為修改了生產**;部分不符合**匠藝精神。

方式3:

import org.powermock.reflect.whitebox;

object excepted = whitebox.invokemethod(object instance, string methodtoexecute, object... arguments);

優點:使用mock了

缺點:對不愛執行單元測試的人,重新命名或者重構後很發現測試中的字串方法名(methodtoexecute)同步修改。

方式4:

單元測試中如何呼叫私有方法

同事遇到了需要對私有方法進行單元測試的情況,上網查了下,如果確實想僅僅對私有方法進行測試 並不推薦這樣,原因後面敘述 可以使用send方法 class a private def just show someone puts i am endend a.new.send just show,jerr...

Java單元測試

直接目的 是為了提高 質量,減少自己的 出現線上bug。實現思路 覆蓋 實現的路徑。保證每條路徑都能覆蓋到,並且值在預期之內。長遠意義 保證 在修改bug前後 重構前後的邏輯一致。更像是留給後期維護的 邏輯文件。溫習下大學的知識。這裡寫描述 測試過程 參與人測試方法 單元測試 開發白盒 語句覆蓋 判...

單元測試之Django單元測試

每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...