java .lang.AssertionError: статус 404 - PullRequest
0 голосов
/ 16 июня 2020

У меня ошибка 404 в этом тесте, я пытаюсь понять, почему он дает мне эту ошибку, может кто-нибудь мне помочь, пожалуйста

это мой контроллер:

 @PostMapping("/infoUtile/add/{idUser}")
    public InformationUtile addOrEditProcedure(@PathVariable(value = "idUser") Long id){
        User user = this.userService.getUser(id);
        InformationUtile info = new InformationUtile();
        info.setUser(user);
        return this.infoUtileService.addOrEditInfoUtile(info);
    }

и это тест, который я написал

 @Autowired
    private MockMvc mockMvc;


    @MockBean
    InformationUtileService informationUtileService;

    @MockBean
    UserService userService;

    ObjectMapper mapper = new ObjectMapper();

    @Test
    public void givenInformationsUtiles_whenGetInfoUtiles_thenReturnJsonArray()
            throws Exception {

        InformationUtile informationUtile = new InformationUtile();
        informationUtile.setId(1);
        informationUtile.setContent("oumaima");
        informationUtile.setDescription("test");
        Media medias = new Media();
        medias.setType("image/png");
        medias.setUrl("C:\\files\\actualite\\32769\\adobexd.png");
        List<Media> allMedias = new ArrayList<Media>();
        allMedias.add(medias);
        informationUtile.setMedias(allMedias);
        OngoingStubbing<User> user = Mockito.when(userService.getUser(Mockito.anyLong())).thenReturn(new User());
        Mockito.when(informationUtileService.addOrEditInfoUtile(Mockito.any(InformationUtile.class))).thenReturn(informationUtile);
        mockMvc.perform(post("/infoUtile/add/{id}",informationUtile.getId())
                .contentType(MediaType.APPLICATION_JSON)
                .content(mapper.writeValueAsBytes(informationUtile)))
                .andExpect(status().isOk());

    }

log

1 Ответ

0 голосов
/ 17 июня 2020

У меня была такая же проблема, и в моем случае решение заключалось в использовании полного пути
из @RequestMapping (аннотация контроллера) + @PostMapping (аннотация метода)

Я не знаю, если это ваш случай. Вы не показываете свой класс контроллера. Но если у вас есть что-то вроде этого:

@RestController
@RequestMapping("/api/v1")
public class SomeController {

    @PostMapping("/infoUtile/add/{idUser}")
    public InformationUtile addOrEditProcedure(@PathVariable(value = "idUser") Long id) {...}

}

, тогда путь в тесте будет

mockMvc.perform(post("/api/v1/infoUtile/add/{idUser}",informationUtile.getId())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...