2012-04-21 111 views
1

我想通過模擬JMock中的類來編寫代碼來測試方法,此方法內部調用三種不同的方法(其中之一是私有方法)。我設定了所有三種內部方法的期望。然後我打電話給正在測試的方法。測試用例沒有說明它期望私有方法被調用並且它沒有被調用。發生的情況是兩個內部方法(使用默認訪問說明符)被成功模擬,但私有方法沒有被模擬,事實上,控制到達導致問題的實際私有方法內部。當我將私有方法的訪問說明符更改爲默認訪問時,一切正常,但我不想這樣做。有人可以請解釋這種行爲,讓我知道如何解決這個問題JMock無法模擬私有方法

+0

這是什麼私人方法,這意味着你想嘲笑他們? – 2012-04-23 12:53:01

+0

該方法中有一些業務邏輯,現在我已經改變了它的訪問說明符,以使它與JMock一起工作 – Gaurav 2012-04-24 18:19:12

+0

允許邏輯運行會帶來什麼樣的危害?當任何人想要模擬部分主題時,我傾向於認爲你有兩個(或更多)班級可以彼此逃避。 – 2012-04-25 08:29:25

回答

0

你也可以使用Jmockit。這是一個優秀的庫,您可以使用這個用例。您可以使用的關鍵字:「Deencapsulation」。