Я использую класс конвертера, я получаю ошибку исключения нулевого указателя в модульном тесте. Но я использую return accountDto
вместо класса конвертера, который работает. Код работает на Почтальоне. Пожалуйста, дайте мне несколько советов.
@Test
void store() {
Date date = new Date();
Account accountMock = mock(Account.class);
AccountDto accountDto = new AccountDto();
accountDto.setId(randomUUID);
accountDto.setName("Test-Name");
accountDto.setSurname("Test-Lastname");
accountDto.setEmail("Test-Email");
accountDto.setBirth_date(date);
accountDto.setPassword("Test-Email");
accountDto.setStatus(OPEN);
when(accountMock.getId())
.thenReturn(String.valueOf(randomUUID));
when(accountRepository.save(ArgumentMatchers.any(Account.class)))
.thenReturn(accountMock);
AccountDto result = accountService.store(accountDto);
assertEquals(result.getName(), accountDto.getName());
assertEquals(result.getId(), String.valueOf(randomUUID));
}
Метод обслуживания =>
@Transactional
public AccountDto store(AccountDto accountDto) {
Account account = new Account();
account.setName(accountDto.getName());
account.setSurname(accountDto.getSurname());
account.setEmail(accountDto.getEmail());
account.setBirth_date(accountDto.getBirth_date());
account.setPassword(accountDto.getPassword());
account.setStatus(accountDto.getStatus());
final Account accountDb = repository.save(account);
accountDto.setId(accountDb.getId());
return converter.convertFromEntity(accountDb);
}
Класс преобразователя =>
/**
* Converts Entity to DTO.
*
* @param entity domain entity
* @return The DTO representation - the result of the converting function application on domain
* entity.
*/
public final T convertFromEntity(final U entity) {
return fromEntity.apply(entity);
}
Ошибка =>
java.lang.NullPointerException
at com.kablanfatih.tddexample.converter.Converter.convertFromEntity(Converter.java:51)
at com.kablanfatih.tddexample.service.impl.AccountServiceImpl.store(AccountServiceImpl.java:42)
at com.kablanfatih.tddexample.service.impl.AccountServiceImplTest.store(AccountServiceImplTest.java:87)