如何获得ConstraintViolation

时间:2018-12-26 10:57:37

标签: java bean-validation

在我的测试用例中缺少某些东西,下面将其链接为@NotNull注释的方法参数,以获取一些ConstraintViolation。

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

目前我完全没有ConstraintViolation,但应该至少有一个与@NotNull约束相关的违规。 我在这里忘记了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

尽管您在测试中生成了验证器,但并未使用它。由于注释在方法调用上,因此有点麻烦。您必须使用反射来获取方法并通过数组将值传递进来。

@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);
}