тест контроллера Springboot не обрабатывает исключение

Я новичок в SpringBoot, и прошло некоторое время с тех пор, как я работал со SpringMVC, поэтому, вероятно, я упускаю что-то очевидное. Мой тест вызывает контроллер, и контроллер выдает исключение IllegalArgumentException, как я и предполагал. Однако тест с этим не справляется. Вместо этого он терпит неудачу, а не проходит, как я ожидал. Вызывая curl, я вижу ожидаемый ответ.

Мой тест:

    @Test
    void throwExceptionWhenMazeIsInvalid() {
        def encodedMaze = java.net.URLEncoder.encode("""#
##########
""", "UTF-8")

        mvc.perform(MockMvcRequestBuilders.get("/solve?maze=${encodedMaze}").accept(MediaType.APPLICATION_JSON))
                .andExpect(status().is(500))
//                .andDo(MockMvcResultHandlers.print())
                .andExpect(content().string("The maze is improperly formatted."))
                .andDo(print())
//                .andReturn()
    }

Мой тестируемый метод:

@RestController
class MazeController {

    @RequestMapping(value = "/solve", method = RequestMethod.GET, produces = "application/json")
    String solve(@RequestParam("maze") String layout){
        println "MazeController.solve(${layout})"

        String decoded = java.net.URLDecoder.decode(layout, "UTF-8")

        if (!MazeValidator.isValid(decoded)) {
            throw new IllegalArgumentException("The maze is improperly formatted.")
        }

        String expectedMaze = """##########
#A@@.#...#
#.#@##.#.#
#.#@##.#.#
#.#@@@@#B#
#.#.##@#@#
#....#@@@#
##########
"""


        JsonBuilder json = new JsonBuilder()
//        json { message decoded }
        json { message expectedMaze }

        println "============= RETURNING response"
        return json.toString()
    }
}

Мой локон:

> curl localhost:8080/solve
{"timestamp":"2018-10-24T21:45:19.025+0000","status":500,"error":"Internal Server Error","message":"The maze is improperly formatted.","path":"/solve"}

person Bill Turner    schedule 24.10.2018    source источник


Ответы (1)


Вы пробовали setHandlerExceptionResolvers для своего издевательского mvc?

person Blangero    schedule 25.10.2018