[英]JUnit 5 test Mockito for RefreshToken
下面是代碼
@Service public class RefreshTokenServiceImpl 實現 RefreshTokenService {
@Autowired
private RefreshTokenRepository refreshTokenRepository;
@Override
public RefreshToken generateRefreshToken() {
RefreshTokenEntity tokenEntity = new RefreshTokenEntity();
tokenEntity.setToken(UUID.randomUUID().toString());
tokenEntity.setCreatedDate(Instant.now());
tokenEntity = refreshTokenRepository.save(tokenEntity);
return RefreshTokenBeanMapper.REFRESH_TOKEN_BEAN_MAPPER.refreshTokenEntityToModel(tokenEntity);
}
刷新令牌
public class RefreshToken {
private Long id;
private String token;
private Instant createdDate;
}
RefreshTokenBeanMapper
@Mapper
public interface RefreshTokenBeanMapper {
RefreshTokenBeanMapper REFRESH_TOKEN_BEAN_MAPPER = Mappers.getMapper(RefreshTokenBeanMapper.class);
RefreshToken refreshTokenEntityToModel(RefreshTokenEntity refreshTokenEntity);
}
嘗試寫一個合適的 JUnit 5 Mockito 測試
據我了解,您始終需要為您的令牌測試生成唯一的 UUID 和日期。 為此,您可以使用實驗性 mockito-inline,它包含 static 方法的功能。
我想你需要這樣的東西:
UUID testUUID = UUID.randomUUID();
Instant n = Instant.now();
try {
MockedStatic<UUID> uuid = Mockito.mockStatic(UUID.class)
uuid.when(UUID::randomUUID).thenReturn(testUUID);
MockedStatic<Instant> inst = Mockito.mockStatic(Instant.class)
inst.when(Instant::now).thenReturn(n);
...
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.