Mockito - returning the same object as passed into method

Solution 1:

Or better using mockito shipped answers

when(mock.something()).then(AdditionalAnswers.returnsFirstArg())

Where AdditionalAnswers.returnsFirstArg() could be statically imported.

Solution 2:

You can implement an Answer and then use thenAnswer() instead.

Something similar to:

when(mock.someMethod(anyString())).thenAnswer(new Answer() {
    public Object answer(InvocationOnMock invocation) {
        return invocation.getArguments()[0];
    }
});

Of course, once you have this you can refactor the answer into a reusable answer called ReturnFirstArgument or similar.

Solution 3:

It can be done easy with Java 8 lambdas:

when(mock.something(anyString())).thenAnswer(i -> i.getArguments()[0]);