Witam,
Mam problem z testowaniem metod, które zwracają void. Nie bardzo rozumiem jak takie coś przetestować. Przecież metoda nic nie zwraca wiec nawet asercji nie mogę użyć. Na przykład chce przetestować taką metode zapisu do bazy danych.
public void addSomething(Something s) {
somethingRepository.save(s);
}
Mój test dla takiej metody wygląda następująco:
@Mock
private SomethingRepository somethingRepository;
private Jpa jpa;
@BeforeEach
public void setUp(){
jpa = new Jpa(somethingRepository);
}
@Test
void shouldDoNothingWhenSomethingRepoCallSave(){
// given
final Something s = Something.builder().name("soooom").build();
given(somethingRepository.save(s)).willReturn(s);
// when
jpa.addSomething(s);
// then
then(somethingRepository).should(times(1)).save(s);
}
Czy ktoś mógł by mi powiedzieć co robie źle, i jak to przetestować dobrze ? Nie bardzo mam pomysł jak tutaj wcisnąć asercje. Używam Junit5 oraz Mockito 2. Z góry dzięki za pomoc.