У меня есть класс контроллера, который выглядит примерно так:
@RestController
@RequestMapping("controller")
public class Controller {
@RequestMapping("foo")
public String method() {
return "foo'd the bar";
}
}
Мой тест выглядит так:
@WebMvcTest(Controller.class)
public class ControllerTest {
@Autowired
private Controller controller;
@Autowired
private MockMvc mockMvc;
@Test
public void canCreate() throws Exception {
Assertions.assertThat(controller).isNotNull();
}
@Test
public void canGetDummy() throws Exception {
this.mockMvc.perform(get("/controller/foo")).andDo(print()).andExpect(status().isOk());
}
}
Мне это кажется немного fr agile, с «базовый URL» контроллера жестко запрограммирован как минимум в n+1
местах для n
протестированных методов. Есть ли способ настроить тест, чтобы избежать этого (поэтому я бы написал /foo
вместо /controller/foo
)? Я мог бы использовать переменную stati c, но похоже, что должно быть более чистое решение.
(Или я думаю об этом неправильно, и необходимость писать полный путь - это хорошо - и в этом случае , почему?)