Spring boot 如何为RestTemplate交换方法编写JUnit测试

Spring boot 如何为RestTemplate交换方法编写JUnit测试,spring-boot,junit,mockito,spring-resttemplate,Spring Boot,Junit,Mockito,Spring Resttemplate,如何为下面的类编写Mockito JUnit测试? 这是我的密码: /** * baseUrl */ @Value("${base.url}") private String baseUrl; /** * Client Method to get room by id * * @param id * @return roomModel */ public RoomModel getRoomByIdClient(int id) { HttpHeader

如何为下面的类编写Mockito JUnit测试? 这是我的密码:

/**
 * baseUrl
 */
@Value("${base.url}")
private String baseUrl;

/**
 * Client Method to get room by id
 * 
 * @param id
 * @return roomModel
 */
public RoomModel getRoomByIdClient(int id) {
    HttpHeaders headers = new HttpHeaders();
    HttpEntity<String> requestEntity = new HttpEntity<String>(headers);
    ResponseEntity<RoomModel> responseEntity = restTemplate.exchange(baseUrl+"/room/{id}",
            HttpMethod.GET, requestEntity, RoomModel.class, id);
    RoomModel roomModel = responseEntity.getBody();
    return roomModel;
}
/**
*基本URL
*/
@值(“${base.url}”)
私有字符串baseUrl;
/**
*按id获取房间的客户端方法
* 
*@param-id
*@返回房间模型
*/
公共RoomModel GetRoomById客户端(int id){
HttpHeaders=新的HttpHeaders();
HttpEntity requestEntity=新的HttpEntity(标头);
ResponseEntity ResponseEntity=restemplate.exchange(baseUrl+“/room/{id}”,
HttpMethod.GET、requestEntity、RoomModel.class、id);
RoomModel RoomModel=responseEntity.getBody();
返回室模型;
}

请帮助

以下是一个简单的示例,说明如何测试您提供的代码。 这是JUnit5。如果您使用的是JUnit4,则需要进行调整

@Mock
rest模板rest模板;
@注射模拟
你的班级测试班;
@之前
无效设置(){
initMocks(this);
ReflectionTestUtils.setField(testedClass,“baseUrl”,“https://baseURL.com");
}
@试验
void testRestTemplate(){
RoomModel RoomModel=新RoomModel();
莫基托
.when(restemplate.exchange)(
ArgumentMatchers.eq(“https://baseURL.com/room/{id}”),
ArgumentMatchers.eq(HttpMethod.GET),
ArgumentMatchers.any(HttpEntity.class),
ArgumentMatchers.eq(RoomModel.class),
ArgumentMatchers.eq(1)
))
.然后返回(新响应(roomModel,HttpStatus.OK));
RoomModel returnedModel=testedClass.getRoomByIdClient(1);
assertEquals(roomModel,returnedModel);
}

请使用带有“spring boot resttemplate test”的搜索引擎。感谢您提供的解决方案,它很有帮助。但是我在这一行中得到了NullPointerException RoomModel returnedModel=testedClass.getRoomByIdClient(1);