spring restdocs 문서에 context-path 표현하기

spring restdocs 문서에 context-path 표현하기

1
java.lang.IllegalArgumentException: requestURI [/] does not start with contextPath [/api]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

@AutoConfigureRestDocs
class ContextTest{
void ok() throws Exception {
var objectMapper = new ObjectMapper();
var json = objectMapper.writeValueAsString(BranchLificCategoryDTOUtil.getBranchLificCategoryDTO());
mockMvc.perform(post("/api/context-path").contextPath("/api")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON)
.content(json))
.andDo(print())
.andExpect(status().isOk())
.andDo(getDocument());
}
}

restdoc를 할때 test code에 contextPath를 지정해 주면된다.

실제 rest 코드에는 context-path가 지정되지 않는다.

1
2
3
4
5
6
7
8
9
10

@RestController
public class TestController{
@PostMapping(path = "/context-path", consumes = MimeTypeUtils.APPLICATION_JSON_VALUE, produces = MimeTypeUtils.APPLICATION_JSON_VALUE)
public void contextPath(@RequestBody @Valid ContextPathDTO dto) {
log.debug("{}", dto);
}
}


참고자료