java.lang.AssertionError: Statut prévu:<200> mais il a été:<400> dans junit

c'est mon contrôleur...

@GET
    @Produces(MediaType.APPLICATION_JSON)
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
    @Path("/categories")
    public POSResponse getAllCategories() {
        String countryCode="1";
        return infoService.getAllCategories(countryCode);
    }

c'est mon testController....

  @Mock
    InfoService infoService;
    @InjectMocks
    private InfoController infoController;

    private MockMvc mockMvc;
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mockMvc = MockMvcBuilders.standaloneSetup(infoController).build();
    }

    @Test
    public void getAllCategoriesTest() throws Exception {
        POSResponse response=new POSResponse();
        Category category=new Category();
        category.setCountryCode(1);
        category.setDescription("Mother Dairy");
        response.setResponse(category);

        when(infoService.getAllCategories("1")).thenReturn(response);

        mockMvc.perform(get("/categories"))
                .andExpect(status().isOk())
                .andExpect(content().contentType(APPLICATION_JSON_UTF8))
                .andExpect(jsonPath("$.id", is(1)))
                .andExpect(jsonPath("$.description", is("Mother Dairy")));

        verify(infoService, times(1)).getAllCategories("1");
        verifyNoMoreInteractions(infoService);
    }

je suis à l'aide de jersey contrôleur.
lorsque j'appelle la méthode que j'ai msg d'erreur"java.lang.AssertionError: Statut prévu:<200> mais il a été:<400>"

  • dans le contrôleur, le param name est "videoid", et dans le test qu'il est "videoId". Avis le cas du " je " dans Id
  • Quel est la sortie dans les fichiers de log? Vous devriez avoir une stacktrace là avec plus d'explications.
  • videoid != videoId. Une autre chose est de savoir comment vous êtes moqueur Manager. Vous ne pouvez pas se moquer des méthodes statiques (je suppose que vous utilisez Mockito). Si c'est juste une faute de frappe (manager est un exemple), vous devez déplacer lorsque(...)... avant d'appeler mockMvc parce que vous aurez probablement nulle réponse.
  • oui j'ai eu la réponse nulle parce que je ne suis pas définir la valeur du message de réponse. et j'utilise le mockito ,et j'ai InjectMocks mon contrôleur dans la maquette de mon manager. si vous avez une meilleure idée alors s'il vous plaît me suggérer. MERCI.
InformationsquelleAutor shailu | 2016-05-10