luchob/softuni-feb2023

Въпрос относно тестването на AuthService

Closed this issue · 1 comments

Зрдравей, Лъчо, имам проблем с Unit тест на AuthService. Направила съм го, както беше показал след регистрация автоматично да се логне. Мисля, че проблема ми идва някъде от UserDetails, защото при дебъгване спира на този ред
when(mockUserDetailsService.loadUserByUsername(testUser
.getUsername())).thenReturn(userDetails);
Странното е, че
Mockito.verify(mockedUserService).register(userEntityArgumentCaptor.capture()); -> работи,
докато
Mockito.verify(mockUserRepository).save(userEntityArgumentCaptor.capture()); -> не
Ще може ли някаква насока, много благодаря предварително :)

https://github.com/yanamet/HotelAntique -> линк към проекта

Здравей!

Това няма как да работи:

Mockito.verify(mockUserRepository).save(userEntityArgumentCaptor.capture()); //Това не

Причината е, че това репозитори никога не се вика никъде. Погледни както имаш в сървиса (който тестваш):

this.userService.register(user);

Тук от теста подаваш userService който е мок, не е истински сървис. Разбира се, той няма как да знае да извика mockUserRepository. Все едно викаш:

this.fakeObject.register(user) 

Като fakeObject няма нищо общо с твоя истински и работещ готин userService.

Направо го трий това mockUserRepository, защото не виждам какво може да правиш с него. Не виждам и да го ползваш някъде.

Поздрави,
Л.