охват кода кода CompletableFuture.supplyAsync - PullRequest
2 голосов
/ 24 октября 2019
  1. У меня есть 10 строк кода внутри CompletableFuture.supplyAsync(() -> { }
  2. Тестовый случай junit пропускает эти 10 строк кода. Как я могу покрыть эти 10 строк
    CompletableFuture.supplyAsync(() -> {

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


    }

1 Ответ

2 голосов
/ 24 октября 2019

Без понимания фактического теста. Что вы можете сделать, чтобы улучшить код, так это абстрагировать эти 10 строк кода в метод, который затем может быть вызван поставщиком.

Это позволит вам легко тестировать метод отдельно, даже не вызывая его. строка CompletableFuture.supplyAsync(...), используемая в коде.

Например, рассмотрим эту абстракцию

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

, где существует метод supplyingMyValue, например

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

и теперь вы можете протестировать этот метод независимо .

Примечание : решение по-прежнему не будет проверять возможность supplyAsync, но предоставит способ проверить толькокод вызван.

...