2016-07-28 74 views
0

如何嘲笑private final MockClass mockClass = new MockClass();模擬最終的新實例創建?

public class SimpleClass { 
    private final MockClass mockClass = new MockClass(); 
} 
+0

取決於您正在使用哪個模擬庫。有了PowerMock,它需要一個'mockStatic(MockClass.class)'調用。使用JMockit,你可以聲明一個'@Mocked MockClass'字段或參數。 –

回答

0

使用依賴注入;那麼你可以有任何你想要的領域:

class SimpleClass { 
    private final MockClass mockClass; 

    SimpleClass(MockClass mockClass) { 
    this.mockClass = mockClass; 
    } 
} 

Misko Hevery's guide to writing testable code:你的代碼是「在構造函數或字段聲明新關鍵字」的警示標誌的例子。

+0

我有這種情況,我想知道任何框架都會嘲笑這種情況嗎?我知道我編寫的代碼不可測試,但我有這種情況 –