使用PowerMock 模擬私有方法的替代解決方案
儘管最初提出的使用PowerMock 的解決方案遇到了困難,但事實證明,另一種方法是成功的。使用 Mockito 和 PowerMock 的組合,可以有效地模擬私有方法。
如提供的程式碼片段所示,類別 CodeWithPrivateMethod 擁有一個公用方法有意義的PublicApi,該方法呼叫私有方法 doTheGamble。為了模擬 doTheGamble 的行為,測試類別 CodeWithPrivateMethodTest 使用 PowerMock 來監視原始類別的實例,並使用 Mockito 指定所需的傳回值。
在這個特定場景中,當呼叫私有方法 doTheGamble 時對於任何字串和整數參數,指示傳回 true。這會導致公共方法meaningPublicApi觸發RuntimeException。
完整的測試配置是透過PowerMock的@PrepareForTest註解完成的,這確保了被測類已準備好進行間諜活動。測試是使用 PowerMockRunner 執行的,這有助於模擬靜態和私人方法。
以上是如何使用 PowerMock 和 Mockito 有效模擬私有方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!