Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to capture method arguments sent to a stubbed method using Mockito

Here's my stubbed method:

 Mockito.when(restTemplateMock.postForEntity(anyString(), any(), eq(String.class))).thenReturn(new ResponseEntity<String>(HttpStatus.OK));

How can I grab hold of the argument sent to this method? The above postForEntity method has 3 arguments.

like image 547
user6123723 Avatar asked Dec 04 '25 16:12

user6123723


1 Answers

final ArgumentCaptor<String> arg1Captor = ArgumentCaptor.forClass(String.class);
final ArgumentCaptor<Object> arg2Captor = ArgumentCaptor.forClass(Object.class);
final ArgumentCaptor<Class<?>> arg3Captor = ArgumentCaptor.forClass(Class.class);

Mockito.verify(restTemplateMock).postForEntity(arg1Captor, arg2Captor, arg3Captor);

Assert.assertEquals("Whatever", arg1Captor.getValue());
like image 200
Adam Avatar answered Dec 06 '25 04:12

Adam