簡體   English   中英

使用Mockito和PowerMockito在Java中進行單元測試

[英]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.

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