我试图模拟来自rest模板的exchange调用,但是由于某些原因,我从调用中得到的是空响应,而不是我在测试中指定的响应实体。注意-在我的服务接口上添加injectmock之前,rest模板试图进行实际调用,而我在其中添加了一个mock调用,但结果为空。
@ActiveProfiles("unit-test")
@RunWith(SpringJUnit4ClassRunner.class)
@Category({ UnitTests.class })
@SpringBootTest@Import({PropertiesTestConfiguration.class})
public class MyTest {
@Mock
OAuth2RestTemplate serviceRestTemplate;
@Autowired
@InjectMocks
ServiceInterface serviceInterface;
@Test
public void getServiceResponse_Success() {
ResponseEntity<String> mockResponseEntity = new ResponseEntity<String>(mockResponseBody, HttpStatus.OK);
String url = "https://unit_test_/XXX";
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
Mockito.when(serviceRestTemplate.exchange( Matchers.anyObject(), Matchers.any(HttpMethod.class), Matchers.<HttpEntity> any(), Matchers.<Class<String>> any()) ).thenReturn(mockResponseEntity);
ServiceInterface.getClaimByClaimId(XXX);
}
}
在我测试的方法中,它返回null
responseEntity = serviceRestTemplate.exchange(uriBuilder.toUriString(),
method, requestEntity, String.class);
1条答案
按热度按时间4uqofj5v1#
如果你使用汉克雷斯特匹配我会推荐使用
is
以及isA
方法来匹配值或示例,本文详细介绍了核心匹配器