0
我在Java世界的新手,但它是很難理解爲什麼不是我能存根嘲笑對象的方法...的Mockito - 不可能磕碰嘲笑對象
@RunWith(MockitoJUnitRunner.class)
public class ChildBLLIT extends BaseInteractorIT {
@InjectMocks
private ChildBLL ChildBLL = Mockito.mock(ChildBLL.class);
@Before
public void setUp() {
ChildBLL.engine = engineMock;
}
/**
* Test of getZipStatistics method, of class ChildBLL.
*/
@Test
public void testGetZipStatistics() {
final String testZipStatisticsText = "DummyZipStatistics";
//This method will throw the null pointer exception
when(ChildBLL.engine.getZIPStatistics()).thenReturn(testZipStatisticsText);
ChildBLL.getZipStatistics();
verify(ChildBLL.engine).getZIPStatistics();
}
}
當我試圖存根getZIPStatistics( )方法我總是得到一個空指針異常,當然我得到了,因爲在getZIPStatistics()方法中有一個私有對象,它沒有被模擬...在我看來,Mockito不會嘲笑私有域...不幸的是這是從另一個項目:
public class BaseIT {
@Mock
protected static FromOtherProject engineMock;
@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}
}
在這裏我嘲笑引擎變量,但那麼我怎樣才能模擬/存根getZIPStatistics()方法?這是這種方法:
public class FromOtherProject {
//...
public final String getZIPStatistics() {
return ZIPStatistics.toString();
}
}
我該怎麼辦?