java - CompletableFuture.supplyAsync 代码的代码覆盖率

标签 java testing java-8 code-coverage

  1. 我有 10 行代码 CompletableFuture.supplyAsync(() -> { }
  2. junit 测试用例正在跳过这 10 行代码。我怎样才能涵盖这 10 个 行
    CompletableFuture.supplyAsync(() -> {

        // line 1
        // line 3
        ..
        ..
        ..
       // line 10


    }

最佳答案

没有意识到实际的测试用例。您可以做的改进代码是将这 10 行代码抽象为一个方法,然后可以从供应商处调用。

这样您就可以轻松地单独测试该方法,甚至无需调用代码中使用的 CompletableFuture.supplyAsync(...) 行。

例如,考虑这个抽象

CompletableFuture.supplyAsync(() -> supplyingMyValue());

存在supplyingMyValue方法的地方,例如

Value supplyingMyValue() {
    // perform some logic
    return new Value();
}

现在您可以独立地测试此方法。

注意:该解决方案仍然不会测试 supplyAsync 功能,而是提供一种仅测试调用的代码的方法。

关于java - CompletableFuture.supplyAsync 代码的代码覆盖率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58535372/

相关文章:

amazon-web-services - 在 Docker 中访问文件时出现权限被拒绝错误

hibernate - 使用 TestNg 测试 hibernate ,单独运行时测试通过但在套件中失败

testing - Microsoft 测试管理器 2010 错误 : The required category 'Microsoft.TestCaseCategory' does not exist in team project

java - 从仅包含重复值的映射中提取子映射

java - 使用替代品在 centos 上安装 java

java-8 - 如何将 List<Person> 转换为 Map<String,List<Employee>>

java - 我需要 eclipse 的旧插件 jdo

java - 替换 Java 字符串中的短划线字符

java - 流图以查找最新 key 的值

java - 页面输出500错误有XSS风险吗?