Mockito 获取所有模拟对象 [英] Mockito get all mocked objects

查看:57
本文介绍了Mockito 获取所有模拟对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想获取所有模拟对象的列表.使用以前版本的 Mockito 我可以做到这一点:

I want to get the list of all mocked objects. Using a previous version of Mockito I could do this:

List<Object> createdMocks = new LinkedList<Object>();
MockingProgress progress = new ThreadSafeMockingProgress();
progress.setListener(new CollectCreatedMocks(createdMocks));

Mockito 最新的 2.8 版本中删除了这些监听器,有什么替代方法吗?

These listeners are removed in the latest 2.8 version of Mockito, is there any alternative for it?

推荐答案

自 Mockito 2.x 以来,这已被 org.mockito.listeners.MockitoListener 的实现所取代,您像这样参与:

Since Mockito 2.x this has been replaced by implementations of org.mockito.listeners.MockitoListener which you engage like so:

Mockito.framework().addListener()

例如:

@Test
public void listAllMocks() {
    List<Object> mocks = new ArrayList<>();

    // can be replaced by a lambda if using java 8+
    Mockito.framework().addListener(new MockCreationListener() {
        @Override
        public void onMockCreated(Object mock, MockCreationSettings settings) {
            mocks.add(mock);
        }
    });

    A a = Mockito.mock(A.class);
    B b = Mockito.mock(B.class);

    // ... do something with a, b

    // verify
    assertThat(mocks.size(), is(2));
    assertThat(mocks, hasItem(a));
    assertThat(mocks, hasItem(b));
}

这篇关于Mockito 获取所有模拟对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆