繁体   English   中英

使用Mockito模拟测试类中的新实例创建

[英]Mocking new instance creation inside testing class using mockito

我正在尝试在我正在测试的类中模拟对象的新实例,但是我正在努力寻找一种使用Mockito做到这一点的方法。

如果我正确理解这一点,则可以使用Powermock来实现,但我只能使用Mockito。

这就是我想要做的

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

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

使用Mockito可以实现吗? 谢谢

恕我直言,您的情况比使用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();
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM