Witam :)
Mam sobie taką metode :
@Override
@Transactional(propagation = Propagation.REQUIRED)
public void register(UserRegisterDTO userRegisterDTO) {
String encodedPassword = passwordEncoder.encode(userRegisterDTO.getPassword());
User user = new User(userRegisterDTO.getUsername(), encodedPassword, userRegisterDTO.getEmail(), true);
userDAO.create(user);
Authority authority = authorityDAO.readBySymbol("USER_ROLE");
LocalDateTime now = LocalDateTime.now();
System.out.println(now);//sprawdzenie mockowania
Timestamp timeFrom = Timestamp.valueOf(now);
UserAuthority userAuthority = new UserAuthority(user, authority, timeFrom, null);
userAuthorityDAO.create(userAuthority);
}
Chciałem sobie zamokować statyczą metodę LocalDateTime.now();
Odpalam więc JUnit z takimi adnotacjami
@RunWith(PowerMockRunner.class)
@PrepareForTest(value = {LocalDateTime.class})
i w testach takie coś mam:
LocalDateTime nowMock = LocalDateTime.of(2016, 5, 7, 21, 37,0);
PowerMockito.mockStatic(LocalDateTime.class);
Mockito.when(LocalDateTime.now()).thenReturn(nowMock);
/*
*Ustawianie innych wartości
*/
userService.register(userRegisterDTO);
Kiedy wywowal LocalDateTime.now to w JUnit wartość jest zgoda z oczekiwaną (2016, 5, 7, 21, 37,0) ale w serwisie już nie :/