Я пытаюсь протестировать слой сервиса, используя Mockito с JUnit, но каждый раз, когда я запускаю его, возвращаемый объект обнуляется.
Дополнительная информация:
- UserRepository - простая пружинаРасширение репозитория данных CRUDRepository.
- Пользователь - простая сущность JPA.
и тест:
@RunWith(MockitoJUnitRunner.class)
public class UserServiceTest {
@Mock
private UserRepository userRepository;
@InjectMocks
private UserService userService = new UserService();
private User user;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
@Test
public void tesGetUserIdStatus() {
// given
user = new User();
user.setUserName(userName);
user.setUserId(userId);
User newUser = new User();
// when
Mockito.when(userRepository.findByUserId(userId)).thenReturn(newUser);
User result = userService.getUserById(user);
// then
Assert.assertEquals(newUser, user);
}
}
Этот тест завершится тем, что ожидаемые значения объекта будут обнуленыкогда фактические значения верны.
Служебная часть, которую я хочу проверить, выглядит следующим образом:
@Component
public class UserService {
private final UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public User getUserById(User user) throws EntityNotFoundException {
String userId = user.getUserId();
user = userRepository.findByUserId(userId);
return user;
}
...