加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java枚举在mockito的thenReturn中的列表

发布时间:2020-12-15 02:59:39 所属栏目:Java 来源:网络整理
导读:有没有办法在mockito的thenReturn函数中枚举列表中的项目,所以我返回列表中的每个项目.到目前为止我已经这样做了: ListFoo returns = new ArrayListFoo();//populate returns listMockito.when( /* some function is called */ ).thenReturn(returns.get(0)
有没有办法在mockito的thenReturn函数中枚举列表中的项目,所以我返回列表中的每个项目.到目前为止我已经这样做了:
List<Foo> returns = new ArrayList<Foo>();
//populate returns list

Mockito.when( /* some function is called */ ).thenReturn(returns.get(0),returns.get(1),returns.get(2),returns.get(3));

这完全符合我的要求.每次调用该函数时,它都会从列表中返回一个不同的对象,例如get(1),get(2)等.

但是我希望简化这个并使其对任何大小的列表更具动态性,以防我有一个大小为100的列表.我尝试过这样的事情:

Mockito.when( /* some function is called */ ).thenReturn(
    for(Foo foo : returns) {
        return foo;
    }
);

我也试过这个:

Mockito.when(service.findFinancialInstrumentById(eq(1L))).thenReturn(
    for (int i=0; i<returns.size(); i++) {
        returns.get(i);
    }
);

但是这不起作用….所以我如何在thenReturn中列举这个列表….我遇到过其他方法喜欢或回答但我不确定哪一个在这种情况下效果最好.

解决方法

这样做的另一种方式(但个人而言,我更喜欢JB Nizet SequenceAnswer的想法),会是这样的……
OngoingStubbing stubbing = Mockito.when(...);
for(Object obj : list) {
    stubbing = stubbing.thenReturn(obj);
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读