【发布时间】:2020-06-18 15:31:59
【问题描述】:
我有一个看起来像这样的控制器类:
@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());
}
}
这对我来说似乎有点脆弱,控制器的“基本 URL”至少在 n+1 位置硬编码为 n 测试方法。有没有办法配置测试来避免这种情况(所以我会写/foo而不是/controller/foo)?我可以使用静态变量,但似乎应该有更清洁的解决方案。
(或者我是不是在想这个错误,并且必须编写完整路径是好的 - 在这种情况下,为什么?)
【问题讨论】:
标签: java spring-mvc