[英]Unit testing in java using mockito and powermockito
我有辦法
public TaskProperty addTask()
{
/*some operations
*
*/
mapToProperty();
}
private TaskProperty mapToProperty()
{
/**some op's**/
}
如何在沒有允許控件進入mapToProperty()
方法的情況下為addTask()
編寫單元測試用例。
如何模擬私有方法mapToProperty()
?
您想要執行此操作的事實...並不是一個好主意:
private
方法表示“內部實現”詳細信息。 從測試中排除它們……意味着您的測試需要了解此私有方法。 但是您的測試應該對您的私有實現細節一無所知。 他們不需要關心。
換句話說:您的單元測試應該只關心您的類的公共接口。 因此:您試圖以一種可以測試那些公共方法的方式編寫所有代碼,而無需“禁用”正在測試的類中的其他內容。 含義:要么嘗試重寫您的私有方法,以便您可以從任何單元測試中調用它,要么; 或者,如果不可能,則將相應的行為移到另一個類中;或者 然后將該類的模擬實例提供給要測試的方法。
長話短說:您的問題暗示您想通過使用“模擬框架錘”來“按摩”症狀來修復“不良設計”。 但這是一種症狀; 並且潛在的問題仍然存在,並影響您的代碼庫。 因此,花時間解決實際問題; 而不是解決它!
以防萬一您仍然喜歡模擬該私有方法; 我寧願建議調查一個模仿間諜來做到這一點(盡管PowerMock也允許進行這種測試,請參見此處 )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.