我必须测试这段代码是否抛出异常,原因是方法被注解为@Async exceptions不抛出
@Async
public CompletableFuture<Response> method(Req req) {
Response response = method(req);
return CompletableFuture.completedFuture(response);
}
private Response anotherMethod(Request req) {
String uri = getUrl();
Response response = restTemplate.postForObject(//some params);
if (response == null) {
throw new RemoteServiceException();
}
if (!response.isOk()) {
throw new RemoteServiceException(ErrorCodeConstant.Exception,
"some message");
}
return response;
}
如何在私有方法中获取测试异常情况?
1条答案
按热度按时间uyhoqukh1#
由于您的私有方法从对resttemplate的调用中获得响应,因此可以模拟resttemplate。你没有列出你的类逻辑,所以我在这里做一些假设,你的类名为
SomeClass
,你正在向它注入一个RestTemplate
。另外,我假设你在问题中添加的代码不是你的实际代码,因为在你的BLOG方法中,它只是调用自己,这将导致StackOverflow。您的测试应该是这样的(对于Junit4,您可以对5做同样的事情,但我假设是4,因为您仍然使用RestTemplate)。这也假设您打算从
method
调用anotherMethod
。