покрытие кода не работает для утверждения, использующего @FunctionalInterface - PullRequest
0 голосов
/ 21 марта 2019

В этой функции:

private void assertAssurancesMissing(Vote vote) {
    assertThrows(
            () -> voteManager.showVote(vote.id, "user")
        ).assertMessageIs("missing assurances");
}

Третья строка с лямбда-функцией показана желтым цветом в выводе покрытия кода в Eclipse.Также не показано покрытие для метода showVote ().

Соответствующие части класса, содержащие assertThrows:

public class ThrowableTester {
  private Throwable thrown;

  public ThrowableTester assertThrows(Thrower thrower) {
    thrown = null;
    try {
        thrower.throwException();
    } catch (Throwable exception) {
        thrown = exception;
    }
    if (thrown == null) {
        fail("no exception thrown");            
    }
    return this;
  }

}

, а Thrower выглядит следующим образом:

@FunctionalInterface
public interface Thrower {
    void throwException() throws Throwable;
}

Я почти уверен, что код выполнялся в тестах, поэтому он должен быть связан с лямбда-функцией или @ FunctionalInterface.

Как исправить покрытиеотчет

...