RxJava를 처음 사용했습니다. 나는 restTemplate을 사용하여 나머지 API를 호출하는 Observable을 작성했습니다. 서비스 클래스에서 만든 Observables의 유닛 테스트를하고 싶습니다. MockMVC를 사용하여 나머지 API 컨트롤러 및 서비스 클래스를 테스트하는 유닛을 알고 있습니다. 따라서 Mockito 또는 MockMVC 또는 사용 가능한 모든 프레임 워크를 사용하여 서비스 클래스의 컨트롤러 및 Observalbes에서 비동기 끝점을 테스트하는 방법에 대한 도움이 필요합니다. 여기 유닛 테스트 RxJava Observables
는@Override
public Observable<List<Response>> fetchJson() {
Observable<List<Response>> list = Observable.<List<Response>>create(
subscriber -> subscriber.onNext(this.invokeRestCall(APIURL)))
.subscribeOn(Schedulers.from(executor));*/
return list;
}
private List<Response> invokeRestCall(String APIURL) {
Response[] responses = restTemplate.getForObject(APIURL, Response[].class);
return Arrays.stream(responses).collect(Collectors.toList());
}
단위 테스트 케이스에 넣어주세요 SampleController.java
@RequestMapping(value = "/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public DeferredResult<List<Response>> getresponse() {
DeferredResult<List<Response>> response = new DeferredResult<>();
service
.fetchJson()
.subscribe(result -> response.setResult(result));
return response;
}
Service.java 내 코드
경우 사람의 시간 서비스 클래스에서 Observable뿐만 아니라 비동기 인 컨트롤러 끝점을 테스트하기 위해 작성되었습니다.