class PropertyValueLimiterTest {
@Test
void bind_invalidValue_MWE(){
Set allowedValues = Set.of("foo", "bar");
Property property = new SimpleObjectProperty("foo");
ChangeListener listener = (observable, oldValue, newValue) -> {
if(! allowedValues.contains(newValue)){
throw new IllegalArgumentException();
}
};
property.addListener(listener);
Assertions.assertThrows(IllegalArgumentException.class,
() -> property.setValue("invalid"));
}
}
Wenn ich diesen Code ausführe, passieren zwei Dinge:
- Der Test schlägt fehl, weil die erwartete Ausnahme nicht ausgelöst wird;
- Junit5 teilt mir mit, dass eine Ausnahme ausgelöst wurde, die der von mir erwarteten entspricht: Exception in thread „Test worker“ java.lang.IllegalArgumentException.