Ожидаемый статус: <302>, но был: <405> - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь выполнить тест, который проверяет, все ли параметры события успешно обновлены, но всякий раз, когда я запускаю тест, я получаю сообщение «Ожидаемый статус: <302>, но был: <405>».

Метод контроллера для обновления событий

    @RequestMapping(value="/update/{id}", method= RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
    public String putEvent(@PathVariable("id") Long id, Event event) {

        Event newEvent = eventService.findOne(id);
        newEvent.setName(event.getName());
        newEvent.setDate(event.getDate());
        newEvent.setTime(event.getTime());
        newEvent.setVenue(event.getVenue());
        newEvent.setSummary(event.getSummary());
        newEvent.setDescription(event.getDescription());

        eventService.save(newEvent);

        return "redirect:/events";
    }

Тест для обновления событий

@Test
    public void everyFieldChangedUpdateEvent() throws Exception {
        ArgumentCaptor<Event> arg = ArgumentCaptor.forClass(Event.class);

        mvc.perform(MockMvcRequestBuilders.post("/events/updateEvent/5").with(user("Rob").roles(Security.ADMIN_ROLE))
                .contentType(MediaType.APPLICATION_FORM_URLENCODED_VALUE)
                .param("name", "new name")
                .param("date", "2020-10-10")
                .param("time", "11:30")
                .param("venue.name", "2")
                .param("summary", "new summary")                
                .param("description", "new description")                
                .accept(MediaType.TEXT_HTML).with(csrf()))
                .andExpect(status().isFound())
                .andExpect(content().string(""))
                .andExpect(view().name("redirect:/events"))
                .andExpect(model().hasNoErrors())
                .andExpect(handler().methodName("putEvent"));

        verify(eventService.save(arg.capture()));
        assertThat("new name",equalTo(arg.getValue().getName()));
        assertThat("2020-10-10",equalTo(arg.getValue().getDate().toString()));
        assertThat("11:30",equalTo(arg.getValue().getTime().toString()));
        assertThat("2",equalTo(arg.getValue().getVenue().getName()));
        assertThat("new summary",equalTo(arg.getValue().getSummary()));
        assertThat("new description",equalTo(arg.getValue().getDescription()));
    }

Сбой на ".andExpect (status (). IsFound ())", но у меня нет Понятия не имею, почему

...