簡體   English   中英

JUnit 5 RefreshToken 測試 Mockito

[英]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);
      ...
}
    ...

https://www.baeldung.com/mockito-mock-static-methods

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM