我正在尝试在我正在测试的类中模拟对象的新实例,但是我正在努力寻找一种使用Mockito做到这一点的方法。
如果我正确理解了这一点,那么使用Powermock可以实现此目的,但是我只能使用Mockito。
这就是我想要做的
private class MyTestClass{
private doSomethingMethod(){
Object obj = new Object();
obj.getSomething;
}
}
我目前正在监视MyTest类,并希望模拟新的Object,以便可以操纵obj.getSomething()的结果
使用Mockito可以实现吗? 谢谢
答案 0 :(得分:0)
您已经说过,恕我直言,一切比使用Powermock更好。
在类似的情况下,我正在使用一种解决方案,将“不可模仿的”代码放入尽可能小的方法中,并@Spy
放在这样的地方:
public class SpyTest {
@Spy
private MyTestClass myTestClass;
@Before
public void initMocks() {
MockitoAnnotations.initMocks(this);
}
@Test
public void spyInsteadOfPowermock() {
when(myTestClass.getObject()).thenReturn(Integer.valueOf(3));
assertThat(myTestClass.doSomethingMethod()).isEqualTo("3");
}
class MyTestClass{
public String doSomethingMethod(){
return getObject().toString();
}
Object getObject() {
return new Object();
}
}
}