2012-11-09 39 views
0

懲戒的具體類我有具有以下構造函數的類:在JUnit 3

class Foo { 
    Foo (Bar bar) { 
     ... 
    } 
} 

我試圖寫一個單元測試這個類和模擬出在酒吧的依賴。但是,我必須使用JUnit 3Bar是一個具體類型。有沒有人有任何想法?我無法使用EasyMock類擴展(需要JUnit 4),並且沒有使用Mockito。我正在考慮一個(尤其是醜陋的)解決方案如下:

interface IBarWrapper { 
    void barMethod(); 
} 

class BarWrapper implements IBarWrapper { 
    void barMethod() { 
     bar.barMethod(); 
    } 
} 

class Foo { 
    Foo (IBarWrapper wrapper) { 
     ... 
    } 
} 

但我不喜歡改變我的實際代碼,以滿足測試的想法。

+0

爲什麼不能繼承Bar? –

+0

爲什麼我沒有想到這個?我猜是因爲我沒有6655的排名:)。我認爲這是最好的選擇。添加此作爲答案,我會將其標記爲正確。 – bm1729

+0

好的,謝謝:-) –

回答

1

您可以繼承Bar的子類。無需過度複雜的事情。

1

EasyMock(v3.x),你可以嘲笑具體的類。請參見Readme

+0

這似乎不適用於我(NoClassDefFoundError組織/ Objenesis/ObjenesisHelper)。我想我會去找Garrett的建議。不管怎樣,謝謝你。 – bm1729

+0

缺少一些依賴關係。見http://stackoverflow.com/questions/8258797/how-configure-easymock-class-extension-3-1 – willome