Spring Bootアプリケーション用のJUnitテストを書いたことはありません。私のサービス(localhost)は、RestTemplate
を介してサービスを呼び出し、それは私に応答を送信します。誰か、私のクラス構造で私に小さな例を教えてもらえますか?それとも誰かが私の場合の良い文書を知っていますか?RestTemplate用のSpringブートでJUnitテストを書く方法
UIController:
@RequestMapping("/my-service")
public interface MyUIController {
@RequestMapping(method=RequestMethod.GET, value= "/user", produces="application/json")
public List<User> getUser(HttpServletRequest request, HttpServletResponse response);
}
RestController:
@RestController
public class MyUIRestController implements MyUIController {
@Autowired
private MyUIService myUIService;
public List<User> getUser(HttpServletRequest request, HttpServletResponse response) {
try {
return myUIService.getUser(request, response);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
MyUIService:
@Service
public class MyUIService {
public List<User> getUser(HttpServletRequest request, HttpServletResponse response) throws IOException {
String url = this.webServiceProperties.webUserBaseURL+"searchUser";
MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>();
params.add("firstName", request.getParameter("firstName"));
UriComponents uriComponents = UriComponentsBuilder.fromHttpUrl(url).queryParams(params).build().encode();
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.setAccept(Collections.singletonList(new MediaType("application","json")));
HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders);
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
ResponseEntity<List<User>> responseEntity = restTemplate.exchange(
uriComponents.toUri(),
HttpMethod.GET, requestEntity,
new ParameterizedTypeReference<List<User>>() {});
return responseEntity.getBody();
}
}
私は、サービスまたはRestController
をテストするために、正確には何がありますか?ご覧のとおり、私は別のサービスを呼びます。私はモックを作る必要がありますか、私は今すぐ呼びかけているサービスからコントローラ/サービスを直接テストできますか?
ありがとうございます!