Mockito在模拟方法的参数上调用方法

时间:2013-05-29 16:48:02

标签: java mockito

我刚刚开始使用Mockito,我只想做类似的事情:

public class Test {     
    public void clearList(List l){
        doVeryLOOOONGDatabaseCallll();
        l.clear();
        return;
    }
}

/// ... 
Test test = mock(Test.class);
Mockito.when(test.clearList(any(List.class))).then( l => l.clear());

有一些暗示可以做到这一点吗? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:20)

这样的事情应该做(未经测试):

doAnswer(new Answer() {
    public Object answer(InvocationOnMock invocation) {
        Object[] args = invocation.getArguments();
        List<?> list = (List<?>) args[0];
        list.clear();
        return null;
    }
}).when(test).clearList(any(List.class));