Printemps RestController + Junit Test

Je suis en train de jouer autour avec le printemps-test de springframework. Mon intention est de tester le POST suivant de la méthode dans mon repos contrôleur:

@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;
  }
}

C'est mon cas de test:

@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());
    }

}

Quand je l'execute, je reçois le Code d'État 415 au lieu de 201. Ce qui me manque? Une simple demande de travaux.

Avez-vous des Jackson ou d'une autre librairie JSON (si le message convertisseur basée sur quelques autres) disponible dans le classpath de sorte Printemps du message convertisseur peut convertir?
J'ai Gson disponibles. Je vais le tester avec Jackson de nouveau. Juste vu que quand @RequestBody est une Chaîne, il fonctionne, donc il semble que la conversion ne fonctionne pas
L'annotation @EnableWebMvc a disparu de mon contrôleur. Maintenant, il fonctionne. Merci pour la réponse!

OriginalL'auteur Joschi | 2016-05-26