如何在mockito中将参数传递给return方法

时间:2017-11-28 14:33:19

标签: java unit-testing mockito

我想传递方法I mock的参数以返回值

示例:

when(mockedObject.printEntries(anyLong()).thenReturn("%d entries");

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:3)

您必须利用thenAnswer功能:

Answer<String> answer = new Answer<String>() {
    public String answer(InvocationOnMock invocation) throws Throwable {
        Long long = invocation.getArgumentAt(0, Long.class);
        return long + " entries";
    }
};


when(mockedObject.printEntries(anyLong()).thenAnswer(answer);

答案 1 :(得分:1)

例如:

    when(mockedObject.printEntries(anyLong()).thenAnswer(invocationOnMock -> {
        Long aLong = invocationOnMock.getArgumentAt(1, Long.class);
        return aLong + 2;
    });