Teraz podczas debugowania można zobaczyć że nasza lista zawiera faktyczne dane.

Ponieważ to wszystko dzieje się w sekcji „given” to aby być z nią bardziej w zgodzie i aby uniknąć dezorientacji z powodu metody „when” bibliteka Mockito..BDDMockito dostarcza nam metodę given. Wówaczas ta linijka kodu będzie zapisana w następujący sposób: given(accountRepository.getAllAccount()).willReturn(accounts);
Jedyną różnica jest tutaj słówko given oraz willReturn zamiast thenReturn.
Zaletą moków jest to że w przeciwieństwie do stubów aby rozpatrzyć kolejny scenariusz testowy możemy napisać nową metodę testową w tej samej klasie testowej. Zmieniamy tylko wartość jaką chcemy uzyskać z nowej metody testowej.
@Test
void getNoAcctiveAccout(){
// given
AccountRepository accountRepository = mock(AccountRepository.class);
AccountService accountService = new AccountService( accountRepository); given(accountRepository.getAllAccount()).willReturn(Collections.emptyList());
// when
List<Account> accountList = accountService.getAllActiveAccaunt();
// then
assertThat(accountList, hasSize(0));
}
Jeżeli zaś w interfejsie pojawią się nowe metody to będzie trzeba zaimplementować odpowiedniego mocka z odpowiednia metodą.
W kolejnym wpisie zajmę się implementacją mocków poprzez adnotacje @Mock.

