我想通過模擬JMock中的類來編寫代碼來測試方法,此方法內部調用三種不同的方法(其中之一是私有方法)。我設定了所有三種內部方法的期望。然後我打電話給正在測試的方法。測試用例沒有說明它期望私有方法被調用並且它沒有被調用。發生的情況是兩個內部方法(使用默認訪問說明符)被成功模擬,但私有方法沒有被模擬,事實上,控制到達導致問題的實際私有方法內部。當我將私有方法的訪問說明符更改爲默認訪問時,一切正常,但我不想這樣做。有人可以請解釋這種行爲,讓我知道如何解決這個問題JMock無法模擬私有方法
1
A
回答
1
JMock不能嘲笑私人方法,簡單明瞭。 Mockito cannot mock private methods either。如果你真的想模擬私人方法,你需要使用PowerMock框架。
0
你也可以使用Jmockit。這是一個優秀的庫,您可以使用這個用例。您可以使用的關鍵字:「Deencapsulation」。
相關問題
- 1. PHPUnit:如何模擬私有方法?
- 2. 模擬方法沒有直接調用JMock的單元測試
- 3. 如何模擬修改私有變量的私有方法?
- 4. 無法模擬的方法
- 5. 無法模擬方法
- 6. 如何在私有靜態方法中模擬第三方類?
- 7. C++中的私有虛擬方法
- 8. 無法用powermockito模擬靜態方法?
- 9. 如何在受測試的方法中模擬受保護/私有方法?
- 10. RSpec - 調用應該模擬的私有方法的測試方法
- 11. 用PowerMock模擬私有方法,但底層方法仍然被調用
- 12. 模擬方法
- 13. Jmock模擬DAO對象
- 14. 在正在測試的同一類中模擬私有方法
- 15. 在JMockit中模擬被測試的類的私有方法
- 16. 如何爲私有靜態方法模擬解析異常?
- 17. Java模擬一個返回null的私有字段的方法
- 18. 如何使用PowerMockito模擬私有靜態方法?
- 19. 在java中使用私有方法模擬外部呼叫
- 20. 單元測試私有方法和使用模擬對象
- 21. 在jmockit中模擬被測試類的私有方法
- 22. 部分模擬測試在調用私有方法時失敗,這是從模擬方法調用
- 23. C#:無法訪問私有方法中的公共方法
- 24. Javadoc私有方法
- 25. Ruby私有方法
- 26. spec'ing私有方法
- 27. Javascript私有方法
- 28. 無法模擬OdbcException
- 29. 無法模擬NSUserDefaults
- 30. 無法模擬OdataQueryOptions
這是什麼私人方法,這意味着你想嘲笑他們? – 2012-04-23 12:53:01
該方法中有一些業務邏輯,現在我已經改變了它的訪問說明符,以使它與JMock一起工作 – Gaurav 2012-04-24 18:19:12
允許邏輯運行會帶來什麼樣的危害?當任何人想要模擬部分主題時,我傾向於認爲你有兩個(或更多)班級可以彼此逃避。 – 2012-04-25 08:29:25