[SPRING] MockMvc를 통해 모든 요청에 대해 서블릿 경로를 설정하는 방법
SPRINGMockMvc를 통해 모든 요청에 대해 서블릿 경로를 설정하는 방법
MockMvc를 통과하는 모든 요청 (get, post, put, delete)에 대해 서블릿 경로를 설정할 수 있습니까?
Spring 디스패치 서블릿은 / rest / *에 매핑됩니다. 하지만 내 테스트에서 나는 나머지 부분을 제거해야한다. 그렇지 않으면 스프링 테스트가 컨트롤러를 인식하지 못한다.
편집하다
@Sotirios :
뭔가가 가능합니다 :
public class MyWebTests {
private MockMvc mockMvc;
@Before
public void setup() {
mockMvc = standaloneSetup(new AccountController())
.defaultRequest(get("/")
.contextPath("/app").servletPath("/main")
.accept(MediaType.APPLICATION_JSON).build();
} }
하지만 모든 요청에 대해 서블릿 경로를 설정할 수 있는지 궁금합니다. 위 코드는 http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/testing.html에 있습니다.
아니면 standaloneSetup으로 servletPath를 정의하는 것만 가능합니까?
해결법
-
==============================
1.나는 ServletException ( "Circular view path ...")에 문제가 있었지만 MockMvc를 사용한 테스트에서는 절대로 발생하지 않았다.
나는 ServletException ( "Circular view path ...")에 문제가 있었지만 MockMvc를 사용한 테스트에서는 절대로 발생하지 않았다.
문제는 메소드가 @ResponseBody로 주석을 달지 않았다는 것입니다. 이 테스트는 빈 서블릿 경로가 있으므로 잘 수행되었으므로 'callPath'와 다른 'servletPath / callPath'로 viewName을 확인하여 ServletException을 던지지 않았습니다. 따라서 테스트 요청에 servletPath를 설정하여 앱 배포 방법에 더 가깝게하고 애노테이션을 잊어 버릴 경우를 대비하여 테스트를 실패하게 만들 필요가있었습니다.
.defaultRequest(get("/").servletPath("/main"))
매력처럼 나를 위해 일했다. 그래서 질문에 대한 대답이 작동합니다.
from https://stackoverflow.com/questions/21837872/how-to-set-servlet-path-for-every-request-through-mockmvc by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Freemarker 템플릿에 Spring MVC 유효성 검사 오류 표시 (0) | 2019.04.11 |
---|---|
[SPRING] Struts 2와 Spring 스트럿츠 생성 객체 처리 방법 (0) | 2019.04.11 |
[SPRING] Spring Ldap 인증 사용 방법 (0) | 2019.04.11 |
[SPRING] 분할 된 작업은 완료 후에 자체적으로 멈출 수 없습니까? 봄 배치 (0) | 2019.04.11 |
[SPRING] 엔티티를 json으로 최대 절전 모드로 전환 (0) | 2019.04.11 |