I try to set the context path for spring rest mocks using the following code snippet:
private MockMvc mockMvc;
@Before
public void setUp() {
this.mockMvc
You need to include the context path in the path that you're passing to get.
In the case you've shown in the question, the context path is /api and you want to make a request to / so you need to pass /api/ to get:
@Test
public void index() throws Exception {
this.mockMvc.perform(get("/api/").contextPath("/api").accept(MediaTypes.HAL_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("_links.business-cases", is(notNullValue())));
}
What many people do is simply not use the context path in mockMvc tests. You only specify the @RequestMapping URI:
@Test
public void index() throws Exception {
this.mockMvc.perform(get("/business-case/1234").accept(MediaTypes.HAL_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("_links.business-cases", is(notNullValue())));
}