【发布时间】:2017-12-22 04:29:14
【问题描述】:
我是 RxJava 的新手。我已经编写了 Observable,它使用 restTemplate 调用了一个 rest api。我想对在服务类中创建的 Observables 进行单元测试。 我知道使用 MockMVC 对其余 api 控制器和服务类进行单元测试。因此需要有关如何使用 Mockito 或 MockMVC 或任何可用框架测试我在控制器中的异步端点和服务类中的 Observalbes 的帮助。
这是我的代码
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
@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());
}
如果有人为测试异步的控制器端点以及服务类中的 Observable 编写了一个单元测试用例。
【问题讨论】:
标签: rx-java