Mockito - testowanie MVC.

0

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óż :

  1. 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.
  2. W argument captor wszystko jest ok, tzn. test przechodzi.

O co z tym chodzi.

Pozdrawiam, i z góry dzięki

0

Baran ze mnie, brak zrozumienia technologii (i chyba logicznego myślenia) i tyle.

Dla potomnych, :
tak powinna wyglądać testowanie metody post :

		@Test
	public void petShouldBeAddAndRedirectToUrlWithItselfId() throws Exception{
		
		mockMvc.perform(post("/pet/add")
				.param("id", "10")
				.param("species", "gorilla"))
		
		.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());	
		
	}

1 użytkowników online, w tym zalogowanych: 0, gości: 1