Prüfung Validierung Einschränkungen

Den Hibernate Validator Dokumentation hat eine einfache Erste Schritte, die Umrisse testen Validierungsregeln.

Den entsprechenden chunk ist

@Test
public void manufacturerIsNull() {
    Car car = new Car(null, "DD-AB-123", 4);

    Set<ConstraintViolation<Car>> constraintViolations =
        validator.validate(car);

    assertEquals(1, constraintViolations.size());
    assertEquals("may not be null", constraintViolations.iterator().next().getMessage());
}

Mir scheint es eine ziemlich vage route zu testen, ob die NotNull constraint verletzt worden ist.

Meine einfache Lösung wäre so etwas wie

public static <T> boolean  containsConstraintViolation(
    Set<ConstraintViolation<T>> violations, Class<?> constraint) {

    for (ConstraintViolation<?> violation : violations) {
        ConstraintDescriptor<?> descriptor = violation.getConstraintDescriptor();
            if (constraint.isAssignableFrom(descriptor.getAnnotation().getClass()))
                return true;
        }
    return false;
}

Welches mir tun tests wie

assertTrue(ValidationUtils.containsConstraintViolation(violations, NotNull.class));

Aber, ich bin sicher, das wird so naiv sein im langen Lauf, und Frage mich, ob es nicht eine andere Bibliothek oder API fehlt mir zu helfen, in unit-Tests Einschränkungen.

InformationsquelleAutor ptomli | 2011-02-23
Schreibe einen Kommentar