我很难理解如何模拟接受类作为参数的方法。比如说。
restTemplate.exchange(someUrl, HttpMethod.GET, httpEntity, SomeEntityModel.class, code)any(Class.class)或any(Class.class)的任何组合或什么都会生成一些新的错误消息。
从未被这样的用例绊倒过。
任何建议,如何模拟此方法,以便它将工作的任何Class.class。
任何对此方法进行模拟的建议,以使其适用于特定的Class.class
发布于 2022-03-24 14:52:12
您可以使用ArgumentCaptor
final ArgumentCaptor<Class<SomeEntityModel>> classArgumentCaptor = ArgumentCaptor.forClass(Class.class);
final ResponseEntity<SomeEntityModel> responseEntity = mock(ResponseEntity.class);
Mockito.when(restTemplate.exchange(eq(someUrl), eq(HttpMethod.GET), eq(httpEntity), classArgumentCaptor.capture(), eq(code))
.thenReturn(responseEntity);
// TODO execute the code which will invoke the mock
Assertions.assertThat(classArgumentCaptor.getValue()).isEqualTo(SomeEntityModel.class);这个想法是,您的模拟方法将被调用,并且您可以检查参数是否是预期的参数。
https://stackoverflow.com/questions/71588441
复制相似问题