У меня проблема с тем, что мой весенний тест MVC не достигает контроллера с соответствующим путем.
@RunWith(SpringRunner.class)
@WebMvcTest(controllers = TaskController.class)
public class TaskRestControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void givenTasks_whenGetTaskById_thenReturnJsonMap() throws Exception {
mvc.perform(get("/task/{id}", "001").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
}
@Test
public void givenTasks_whenGetTasks_thenReturnJsonArray() throws Exception {
mvc.perform(get("/task").contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
}
}
Конкретный контроллер выглядит следующим образом.
@RestController
@RequestMapping("/task")
public class TaskController {
@GetMapping
public ResponseEntity<List<Task>> getTasks() {
return new ResponseEntity<>(Arrays.asList(new Task(), new Task()), HttpStatus.OK);
}
@GetMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Task> getTaskById(@PathVariable String id) {
return new ResponseEntity<>(new Task(), HttpStatus.OK);
}
}
Чего мне не хватает?Я постоянно получаю ответ 404.И при отладке он не попадает в TaskController.
Я оставил репозиторий и службы, задействованные в контроллере, для краткости и просто вернул жестко запрограммированную новую задачу со статусом OK для примера.
У меня естьтакже попытался удалить уровень контроллера RequestMapping и явно указать отображение в @GetMappings ... Также это не сработало.
Я использую версию 2.1.4.RELEASE spring-boot - * зависимостей.