【发布时间】:2021-03-14 22:57:43
【问题描述】:
我需要测试服务层中的@ControllerAdvice 方法。但是我遇到了两个问题:
- ExceptionHandlers 未触发
- 即使它会被触发,我发现现在不知道如何测试它)
@Slf4j @ControllerAdvice 公共类 AppExceptionHandler {
@ExceptionHandler(value = {.class})
public ResponseEntity<Object> handleMyException(MyException ex, WebRequest request) {
ErrorMessage errorMessage = ErrorMessage.builder()
.message(ex.getMessage())
.httpStatus(HttpStatus.BAD_REQUEST)
.time(ZonedDateTime.now())
.build();
return new ResponseEntity<>(errorMessage, HttpStatus.BAD_REQUEST);
}
@RunWith(MockitoJUnitRunner.class)
@RequiredArgsConstructor
public class MyExceptionTest {
private final AppExceptionHandler handler;
@Mock private final MyService service;
@Test
public void test() throws MyException {
when(service.create(any()))
.thenThrow(MyException .class);
}
}
【问题讨论】:
-
我认为你应该改写
integration-test。
标签: spring-boot testing exception mockito junit5