2012-09-06 2 views
0

을 지원하지 않습니다 사례가 생성됩니다.봄 테스트 MVC PUT이 내 컨트롤러 방법입니다

WARN org.springframework.web.servlet.PageNotFound - Request method 'PUT' not supported 

또한 updateUser 메소드는 호출되지 않습니다. 응답 코드는 405입니다.

나는 많은 테스트와 모든 GET 요청을 작성했으며 제대로 작동합니다. 즉, ContextConfiguration에 자신감이 있습니다. 나는 무엇을 놓쳤는가?

+0

1 년 후. 여기에 같은 문제가 있습니다. 너는 요청을 부탁 했니? 미리 감사드립니다, 떡갈 나무 – oak

+0

그래, 내가 json도 setter와 getters로 변환했다. 거기 요청이 거절 당했다. 내 솔루션이 getters 이러한 종류의 건너 뜁니다. 즉 :'ObjectMapper mapper = new ObjectMapper(); mapper.configure (MapperFeature.REQUIRE_SETTERS_FOR_GETTERS, true); return mapper.writeValueAsBytes (object); ' – oak

답변

3

@RequestMapping 메서드에서 content-type의 헤더를 명시 적으로 기대하지만 요청에 콘텐츠 유형을 보내지 않은 경우 요청이 실패한 이유가 여기 있습니다. 시도해보십시오.

mockMvc.perform(put("/r01/users").contentType(MediaType.APPLICATION_JSON).body(userJsonString.getBytes()) 
    .accept(MediaType.APPLICATION_JSON)) 
    .andExpect(status().isOk()) 
    .andExpect(content().type(MediaType.APPLICATION_JSON)) 
    .andExpect(content().string(userString)); 
+0

"contentType (MediaType.APPLICATION_JSON)"과 차이가 없습니다. –

+0

'headers = "content-type = application/json"을 제거하면 뭔가 다른 것을 시험해 볼 수 있습니다. 여전히 효과가 없습니까? –

+0

안녕하세요. 나는 그것을 시도했고, 그 주제를 둘러싼 많은 순열을 보았다. –