使用mockito在测试类中模拟新实例创建

问题描述 投票:0回答:1

我正在尝试模拟我正在测试的类中的对象的新实例,但我正在努力找到使用Mockito执行此操作的方法。

如果我理解这一点,这可能是使用Powermock可以实现的东西,但我只能使用Mockito,我可以使用。

这就是我想要做的

   private class MyTestClass{
      private doSomethingMethod(){
        Object obj = new Object();
        obj.getSomething;
      }
   }

我目前正在监视MyTest类,并想模拟新的Object,以便我可以操作obj.getSomething()的结果

这是用Mockito实现的吗?谢谢

java initialization mockito spy
1个回答
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();
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.