Witam, z góry przepraszam za głupią nazwę tematu, ale nie wiedziałem sam do końca jak nazwać wątek. Oto mój problem :
Tworzę sobie obiekt klasy pet w metodzie setup :
toAdd = new PetBuilder()
.id(10)
.dateOfBirth("2000-01-01")
.name("TestPet")
.species("gorilla")
.weight(150000L)
.build();
Chcę przetestować metodę POST z mojego controllera, test wygląda w ten sposób :
@Test
public void petShouldBeAddAndRedirectToUrlWithItselfId() throws Exception{
doNothing().when(clinicService).saveAndFlush(any(Pet.class));
clinicService.saveAndFlush(toAdd);
mockMvc.perform(post("/pet/add"))
.andExpect(redirectedUrl("/pet/findById/10"));
ArgumentCaptor<Pet> formObjectArgument = ArgumentCaptor.forClass(Pet.class);
verify(clinicService, times(1)).saveAndFlush(formObjectArgument.capture());
verifyNoMoreInteractions(clinicService);
Pet petFromForm = formObjectArgument.getValue();
assertEquals(10, petFromForm.getId());
assertEquals("gorilla", petFromForm.getSpecies());
}
I pojawia się brak zrozumienia, otóż :
- Oczekuję redirecta zakończonego id danego obiektu - dostaję 0, pytanie : dlaczego ? Szukałem po sieci - niczego nie znalazłem, a chciałbym wiedzieć dlaczego tak się dzieje.
- W argument captor wszystko jest ok, tzn. test przechodzi.
O co z tym chodzi.
Pozdrawiam, i z góry dzięki