2016-05-26 34 views
3

私はspringframeworkのspring-testで遊んでいます。これは私のテストケースであるSpring RestController + Junit Testing

@RestController 
@RequestMapping("/project") 
public class ProjectController { 

    @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE) 
    public Project createProject(@RequestBody Project project, HttpServletResponse response) { 
    // TODO: create the object, store it in db... 
    response.setStatus(HttpServletResponse.SC_CREATED); 
    // return the created object - simulate by returning the request. 
    return project; 
    } 
} 

::私はそれを実行すると

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration(classes = {ProjectController.class }) 
@WebAppConfiguration 
public class ProjectControllerTest { 

    private MockMvc mockMvc; 

    @Autowired 
    private WebApplicationContext wac; 

    @Before 
    public void setUp() { 
     mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); 
    } 

    @Test 
    public void testCreationOfANewProjectSucceeds() throws Exception { 
     Project project = new Project(); 
     project.setName("MyName"); 
     String json = new Gson().toJson(project); 

     mockMvc.perform(
       post("/project") 
         .accept(MediaType.APPLICATION_JSON) 
         .contentType(MediaType.APPLICATION_JSON) 
         .content(json)) 
       .andExpect(status().isCreated()); 
    } 

} 

私は、ステータスコード415の代わりに201を取得する私は何を私の意図は、私の残りのコントローラで、次のPOSTメソッドをテストすることです行方不明?単純なGET要求が機能します。 、これはこれで問題が解決されます追加し、あなたのコードから欠落している

+1

あなたが持っていジャクソンや他のJSONライブラリ(メッセージコンバータいくつかの他に基づいている場合)クラスパスで利用できるので、Springのメッセージコンバータはそれを変換できますか? – Stan

+0

私はGsonを利用できます。私はジャクソンと再びそれをテストします。ちょうど@RequestBodyが動作しているときに@RequestBodyが動作するので、変換が動作しないように見えます。 – Joschi

+0

@EnableWebMvcアノテーションがコントローラにありませんでした。今それは動作します。返信いただきありがとうございます! – Joschi

答えて

8

あなたは@EnableWebMvcが@RestControllerが動作するために注釈を追加する必要が

+1

ありがとう私は私のポストの数分後に気づいた。私はあなたの答えを正しいものとしてマークします;) – Joschi

+0

postメソッドでエラーが発生しています。あなたがそれをもっと文脈を提供することができますか? –

+0

ちょっと@KIRANKUMARMATAMあなたがそれをより多くのコンテキストを提供できますか? – rajadilipkolli

関連する問題