Java 如何为以Lambda为参数的ExecuterService execute方法编写测试用例

Java 如何为以Lambda为参数的ExecuterService execute方法编写测试用例,java,mockito,junit5,Java,Mockito,Junit5,我想为下面复杂的代码覆盖率方法编写测试用例,除了lambda作为参数之外,我在执行方法方面面临着挑战 public CompletableFuture<SecurityToken> getSecurityTokenAsync(String audience) { CompletableFuture<SecurityToken> tokenGeneratingFuture = new CompletableFuture<>();

我想为下面复杂的代码覆盖率方法编写测试用例,除了lambda作为参数之外,我在执行方法方面面临着挑战

public CompletableFuture<SecurityToken> getSecurityTokenAsync(String audience) {
        CompletableFuture<SecurityToken> tokenGeneratingFuture = new CompletableFuture<>();
        Executors.newCachedThreadPool().execute(() -> {
            try
            {
                MSICredentials credentials = new MSICredentials.withClientId("client-id");
                String rawToken = credentials.getToken("key");
                Date expiry = getExpirationDateTimeUtcFromToken(rawToken); 
                tokenGeneratingFuture.complete(new SecurityToken(SecurityTokenType.JWT, audience, rawToken, Instant.now(), expiry.toInstant()));
            }
            catch(IOException ioe)
            {
                TRACE_LOGGER.error("ManagedServiceIdentity token generation failed.", ioe);
                tokenGeneratingFuture.completeExceptionally(ioe);
            }
        });

        return tokenGeneratingFuture;
    }

private Date getExpirationDateTimeuteFromToken(String token) throws ParseException {
     JWT jwt = JWTParser-parse(token);
     JWTClaimsSet claims jwt.getJWTClaimsSet(); 
     return claims.getExpirationTime();
}
public CompletableFuture getSecurityTokenAsync(字符串访问群体){
CompletableFuture tokenGeneratingFuture=新的CompletableFuture();
Executors.newCachedThreadPool().execute(()->{
尝试
{
MSICredentials credentials=新的MSICredentials.withClientId(“客户端id”);
String rawToken=credentials.getToken(“key”);
日期到期=getExpirationDateTimeUtcFromToken(rawToken);
tokenGeneratingFuture.complete(新的SecurityToken(SecurityTokenType.JWT、访问群体、rawToken、Instant.now()、expiry.toInstant());
}
捕获(ioe异常ioe)
{
TRACE_LOGGER.error(“ManagedServiceIdentity令牌生成失败。”,ioe);
tokenGeneratingFuture.CompleteeException(ioe);
}
});
回归创造未来;
}
私有日期getExpirationDateTimeuteFromToken(字符串标记)引发异常{
JWT JWT=JWTParser解析(令牌);
JWTClaimsSet声明jwt.getJWTClaimsSet();
返回索赔。getExpirationTime();
}