public class TargetObjectWrapper extends TargetObject {
@Mock SomeObject myMockOfSomeObject;
@InjectMocks TargetObject targetObject;
public TargetObjectWrapper(){
this.targetObject = mock(originalObject);
//doAnswer(...).when(...) methods
}
//Override other methods of TargetObject
}
我試圖注入特定的模擬對象爲targetObject
的一個領域。我知道targetObject將始終有一個具有此特定簽名的字段。用Mockito,如果我用@InjectMocks注入一個對象到我的模擬中,我該如何避免使其他對象無效?
這一切工作,我可以注入myMockOfSomeObject
成功,並適當地重定向呼叫。
但當TargetObject類包含其他領域,如下面這個簡單的例子,那場被清零了,並導致空指針異常,當我通過對原始對象的請求。
Log log = LogFactory.getLog(getClass());
我怎樣才能避免造成其他的對象,以得到空值?特別是如果其他變量可能從對象變爲對象(此代碼應該是通用的)?
還注入模擬日誌。 – 2013-02-17 08:41:54
我不控制我在這種情況下嘲笑的代碼,我只知道如果它將使用我的單元測試代碼,它將具有SomeObject,但其他變量可以是任何東西。日誌只是無限可能的例子之一。 – 2013-02-17 12:41:59