gpt4 book ai didi

java - 在 Spring Boot 中编写单元测试,但由于转换器类而出现错误

转载 作者:行者123 更新时间:2023-12-01 18:08:20 25 4
gpt4 key购买 nike

我使用转换器类,在单元测试中出现空指针异常错误。但我使用 return accountDto 而不是转换器类它正在运行。代码正在 postman 处运行。请给我一些建议。

@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)

最佳答案

我认为你有两个选择。首先,您可以模拟您的 Converter 类,或者其次,您可以正确初始化转换器并在测试中使用它。我更喜欢第一个解决方案,因为我可以在单元测试的上下文中更好地控制转换器的行为。

关于java - 在 Spring Boot 中编写单元测试,但由于转换器类而出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60515271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com