Java spy方法上对象的mockito返回序列

Java spy方法上对象的mockito返回序列,java,mockito,Java,Mockito,我知道您可以在模拟上设置要返回的几个不同对象。前 when(someObject.getObject()).thenReturn(object1,object2,object3); 你能对一个被监视的物体做同样的事情吗?我在一个间谍身上尝试了上述方法,但没有成功。我在文档中阅读了在间谍上使用doReturn(),如下所示 doReturn("foo").when(spy).get(0); 但是deReturn()只接受一个参数。我想在间谍身上按特定顺序归还不同的物品。这可能吗 我有一个像下面

我知道您可以在模拟上设置要返回的几个不同对象。前

when(someObject.getObject()).thenReturn(object1,object2,object3);
你能对一个被监视的物体做同样的事情吗?我在一个间谍身上尝试了上述方法,但没有成功。我在文档中阅读了在间谍上使用
doReturn()
,如下所示

doReturn("foo").when(spy).get(0);
但是
deReturn()
只接受一个参数。我想在间谍身上按特定顺序归还不同的物品。这可能吗

我有一个像下面这样的类,我正在尝试测试它。我想测试
myClass
,而不是
anotherClass

public class myClass{

    //class code that needs several instances of `anotherClass`

    public anotherClass getObject(){
        return new anotherClass();
    }
}

您可以在
when()
之前链接
doReturn()
调用,因此这是可行的(mockito 1.9.5):

另外,我不知道您可以在(x.y())时执行
。然后返回(z1,z2)
,当我必须执行此操作时,我使用链式
。然后返回()
调用:

when(x.y()).thenReturn(z1).thenThrow().thenReturn(z2)

我只想补充一点,我更喜欢
BDDMockito
别名,但这是代码中的偏好问题。这将给出以下内容:
willReturn(“foo”).willReturn(“bar”).willCallRealMethod().given(meh).meh()
when(x.y()).thenReturn(z1).thenThrow().thenReturn(z2)