我有以下代码:
public Object parse(){
....
VTDGen vg = new VTDGen();
boolean parsed = vg.parseFile(myFile.getAbsolutePath(), false);
}
我正在为此方法编写单元测试。当我运行该方法而不模拟VTDGen
该parseFile
方法时返回true
。但是,当我用间谍模拟它时,它会返回false
.
我的测试如下:
@Before
public void setup(){
VTDGen vtgGen = new VTDGen();
VTDGen vtgGenSpy = PowerMockito.spy(vtdGen);
PowerMockito.whenNew(VTDGen.class).withNoArguments().thenReturn(vtdGenSpy);
}
@Test
public void myTest(){
// when I run the test parseFile returns false
// if I remove the mocking in the setup, parseFile returns true
}
我的印象是 Mockito 的间谍对象不应该改变包装对象的行为,那么为什么我得到的是假而不是真的?