小编tep*_*tep的帖子

使用@ControllerAdvice测试@RestController

我的问题与测试Spring @RestController有关,它也使用@ControllerAdvice和@ExceptionHandler.这是代码:

@ControllerAdvice类:

@ControllerAdvice
public class MyAppExceptionHandler {

    @ExceptionHandler({ NoSuchEntityException.class })
    @ResponseStatus(value = HttpStatus.NOT_FOUND)
    public @ResponseBody
    ErrorDTO handleNotFoundException(Exception ex) throws IOException {

        return new ErrorDTO.Builder().setStatus(HttpStatus.NOT_FOUND)
                .setCause(ex.getClass().getName())
                .setThrowable(ex).build();
    }
}
Run Code Online (Sandbox Code Playgroud)

在应用程序中使用它时一切正常 - 通过JSON解释完美地获得404响应,但在测试期间尝试使用它时 - 会发生不好的事情.

我的考试班:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { WebConfig.class })
@WebAppConfiguration
public class SomeTest {

    @Mock
    private SomeService service;

    @InjectMocks
    private SomeController controller;

    private MockMvc mvc;

    private ExceptionHandlerExceptionResolver createExceptionResolver() {
        ExceptionHandlerExceptionResolver exceptionResolver = new ExceptionHandlerExceptionResolver() {
            @Override
            protected ServletInvocableHandlerMethod getExceptionHandlerMethod(
                HandlerMethod handlerMethod, Exception exception) {
                Method method = new …
Run Code Online (Sandbox Code Playgroud)

java junit spring

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

junit ×1

spring ×1