例外がスローされることをモックしたいいくつかの非同期メソッドのテストを書いています。これらのメソッドは同期的であり、私がそれらを非同期にした今まで正常に動作していたテストと、いくつかの簡単な方法で、モックされた例外がスローされていません。
私のテスト:
@MockBean
private RestTemplate rest
@Autowired
private ServiceImpl mockedService;
@Test(expected = MyException.class)
public void test1() {
when(rest.exchange(Mockito.anyString(),
Mockito.any(HttpMethod.class),
Mockito.any(HttpEntity.class),
Mockito.eq(ParameterizedTypeReference.class)))
.thenThrow(new MyException());
this.mockedService.method();
}
私がテストしようとしている方法:
@Autowired
private RestTemplate rest;
@Override
@Async
public void method() {
...
try {
rest.exchange(builder.toUriString(), HttpMethod.GET, entity, new ParameterizedTypeReference<MyObject>() {});
responseEntity.getBody();
} catch (HttpClientErrorException | HttpServerErrorException e) {
log.error("Hello");
throw (e);
}
}
上記の行で例外が発生するため、呼び出されるべきではないときに呼び出されているため、というエラーが発生していますNullPointerException
。responseEntity.getBody();
どうしたの?ありがとうございました!