2014-01-18 26 views
1

我有最後一類,並構造爲...如何使用EasyMock的嘲笑最後一類在Java中 - JUnit測試

我有問題要嘲笑這個類。我開始知道我無法使用EasyMock進行最終課程。但在我的項目中,我只能使用easymock。有沒有辦法嘲笑這個課程?你能請任何人幫助我嗎?

//A a = createMock(A.class);//IllegalException occuring while running this test case 


For example : 

final class A { 

private int a; 
    A(int a){ 
this.a = a; 
} 

} 
+0

你可以提取它的界面,然後使用接口無處不在,然後嘲笑新界面。 – Katona

+0

爲什麼課程最終放在首位? –

+0

它的客戶端代碼最終class.So我不能change.Due到我奮力 – shree

回答

6

用純EasyMock模擬最後一堂課是不可能的。你必須添加類似PowerMock,這與EasyMock很好地集成在一起。或者你寫一個不需要嘲笑最終課程的測試。

1

我能想到的是,如果你最終的類實現任何接口(考慮到接口包括您需要在測試中使用的方法),你總是可以創建一個實現另一個類的實例最好是相同的接口和使用這個作爲模擬或使用dynamic proxies

的問題是,有時找到解決方法的需求將會成倍成倍做一些事情的時候,你已經知道,像PowerMock工具是在那裏工作需要。

+0

「你總是可以創建一個實現了相同的接口,並以此作爲模擬另一個類的實例」 - 如果你有接口,那麼爲什麼不是模擬界面?這纔是重點。如果你只是想使用模擬,不需要創建存根實現。 –