У меня есть следующий код:
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
}
У меня сложилось впечатление, что шпионские объекты Мокито не должны изменять поведение обернутых объектов, так почему я получаю ложное значение вместо истинного?