I'm working with OptionalAssert class of AssertJ and I need to implement a JUnit ParameterizedTest that will check for presence or emptiness of an Optional instance in a dynamic way:
@ParameterizedTest
@ValueSource(/* values */)
void test_presence(Optional<String> opt, boolean empty) {
assertThat(opt) // -> .isPresent() / .isEmpty();
}
In a non-parametrised test I would use .isPresent() or .isEmpty() methods to execute the check, but in this case I'd like to apply something like .isPresent(true/false).
I can't find a method like this in the JavaDoc so I'm wondering if there is an alternative approach to this (or should I just deal with an if/else?)
CodePudding user response:
You can use boolean assert instead
assertThat(opt.isEmpty()).isEqualTo(empty)
CodePudding user response:
From Optional docs:
isPresent: If a value is present, returns true, otherwise false.
So you can simply test like this:
@ParameterizedTest
@ValueSource(/* values */)
void test_presence(Optional<String> opt, boolean present) {
assertThat(opt.isPresent()).isEqualTo(present);
}
