Как получить ConstraintViolation - PullRequest
0 голосов
/ 26 декабря 2018

Чего-то не хватает в моем тестовом примере, связанном ниже, чтобы вернуть ConstraintViolation после установки значения null для параметра метода, помеченного @ NotNull.

https://github.com/sourcefranke/fibonacci/blob/master/src/test/java/fibonacci/FibonacciTest.java

На данный момент ConstraintViolation отсутствуетвсе, что я получаю обратно результат, но должно быть хотя бы одно нарушение, связанное с ограничением @NotNull.Что я здесь забыл?Спасибо!

1 Ответ

0 голосов
/ 26 декабря 2018

Хотя вы генерируете валидатор в своем тесте, вы им не пользуетесь.Поскольку ваши аннотации относятся к вызову метода, это немного сложно.Вы должны использовать отражение, чтобы получить метод и передать значения через массив.

@Test
public void generateList_lessThan3() throws NoSuchMethodException, SecurityException {
    // when(fibonacci.generateStream(any())).thenReturn(Stream.of(BigInteger.ONE, BigInteger.ONE));

    Method method = Fibonacci.class.getMethod("generateList", Integer.class);
    // fibonacci.generateList(null);

    Set<ConstraintViolation<Fibonacci>> violations = validator.forExecutables().validateParameters(fibonacci,
            method, new Object[] {null});
    Assertions.assertEquals(1, violations.size());
    System.out.println(violations);
}
...