繁体   English   中英

如何模拟方法中初始化的对象

[英]How to mock object initialized in method

我有两个obj,obj1和obj2,obj2是obj1中的属性,

public class MyObject1
{
    MyObject2 myObject2;

    public MyObject2 getMyObject2()
    {
        return myObject2;
    }

    public void setMyObject2(MyObject2 myObject2)
    {
        this.myObject2 = myObject2;
    }
}

在我的服务中,它已初始化为obj1,并获得obj2为

public void myTest2(){
        MyObject1 myObject1 = new MyObject1();
        MyObject2 myObject2 = myObject1.getMyObject2();
}

在我的测试中,我模拟了obj2,我想当(obj1.getObj2).thenReturn(obj2),这个obj2是模拟对象,如下

public void test3(){
        MyObject2 myObject2 = mock(MyObject2.class);
        MyObject1 myObject1 = spy(new MyObject1());
        doReturn(myObject2).when(myObject1).getMyObject2();
        myService.myTest2();
} 

但是现在我从测试中获得的myObject2为空,而不是模拟的myObject2。 如何在测试中嘲笑myObject2?

由于没有反射我们就无法使用模仿器来模拟局部变量,因此目前的问题是死胡同

暂无
暂无

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

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