MockMvc pobieranie parametru z posta

MockMvc pobieranie parametru z posta
AK
  • Rejestracja:prawie 8 lat
  • Ostatnio:ponad 6 lat
  • Postów:30
0

Witam
Mam Controller gdzie dodaję do bazy zadanie i przekierowuję na stronę gdzie je wyświetlam:

Kopiuj
return "redirect:/task/" + task.getId();

I teraz robię testy za pomocą MockMvc i chcę sprawdzić czy przy poprawnych danych przekieruje na odpowiedni adres

Kopiuj
@Test
public void postAddTaskWithValidData() throws Exception {
        mockMvc.perform(post("/task/add).with(csrf())
        .contentType(MediaType.APPLICATION_FORM_URLENCODED)
        .param("topic", "Task Topic")
        .param("content", "Test content")
        .sessionAttr("taskForm" , new Task()))
        .andExpect(model().attributeErrorCount("taskForm", 0))
        .andExpect(view().name("redirect:/task/{id}"));
}

jak mam pobrać id dodanego taska do bazy i dodać go w ostatniej linijce w andExpect(view().name("redirect:/task/{id}"));
Chyba, że nie ma takiej możliwości to jak zapisać view().name żeby się zgadzało? view().name("redirect:/task/*") też próbowałem

W tym przykładzie dostaję odp: java.lang.AssertionError: View name expected:redirect:/task/{id} but was:redirect:/task/19

S9
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Warszawa
  • Postów:3573
1

bo to {id} to taki "szablon". I powinieneś rzeczywiście wstawić jakąs konkretną spodziewaną wartość.
Dla przykładu jeśli masz

Kopiuj
/users/{username}

i sprawdasz co się dzieje gdy na przykład wstawiasz scibi92 :) to powineneś dać w teście

Kopiuj
/users/scibi92


"w haśle <młody dynamiczny zespół> nie chodzi o to ile masz lat tylko jak często zmienia się skład"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.