T - the type of object the given condition accept.public final class VerboseCondition<T> extends Condition<T>
Condition that shows the value under test when the condition fails thanks to the specified objectUnderTestDescriptor function.
When defining the objectUnderTestDescriptor function, you should take in consideration whether the condition is going to be used
with is(Condition) or has(Condition) since the start of the error message is different between the two.
Let's see how it works with an example that works well with is(Condition):
Condition<String> shorterThan4 = VerboseCondition.verboseCondition(actual -> actual.length() < 4,
// predicate description
"shorter than 4",
// value under test description transformation function
s -> String.format(" but length was %s", s.length(), s));
If we execute:
assertThat("foooo").is(shorterThan4);
it fails with the following assertion error:
Expecting actual:
"foooo"
to be shorter than 4 but length was 5
Note that the beginning of the error message looks nice with is(Condition), but not so much with has(Condition):
Expecting actual:
"foooo"
to have shorter than 4 but length was 5
The objectUnderTestDescriptor must not be null, if you don't need one this probably means you can simply use Condition(Predicate, String, Object...) instead of a VerboseCondition.
Condition.Status| Modifier and Type | Method and Description |
|---|---|
protected String |
buildVerboseDescription(T objectUnderTest,
boolean matches)
Build the verbose condition description when applied with the actual values and the match result.
|
boolean |
matches(T objectUnderTest)
Verifies that the given value satisfies this condition.
|
static <T> VerboseCondition<T> |
verboseCondition(Predicate<T> predicate,
String description,
Function<T,String> objectUnderTestDescriptor)
Creates a new
to have better control over the condition description when the condition fails thanks
to the objectUnderTestDescriptor function parameter. |
conditionDescriptionWithStatus, describedAs, description, status, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitas, as, as, describedAspublic static <T> VerboseCondition<T> verboseCondition(Predicate<T> predicate, String description, Function<T,String> objectUnderTestDescriptor)
VerboseCondition to have better control over the condition description when the condition fails thanks
to the objectUnderTestDescriptor function parameter.
When defining the objectUnderTestDescriptor function, you should take in consideration whether the condition is going to be used
with is(Condition) or has(Condition) since the start of the error message is different between the two.
Let's see how it works with an example that works well with is(Condition):
Condition<String> shorterThan4 = VerboseCondition.verboseCondition(actual -> actual.length() < 4,
// predicate description
"shorter than 4",
// value under test description transformation function
s -> String.format(" but length was %s", s.length(), s));
If we execute:
assertThat("foooo").is(shorterThan4);
it fails with the following assertion error:
Expecting actual:
"foooo"
to be shorter than 4 but length was 5
Note that the beginning of the error message looks nice with is(Condition), but not so much with has(Condition):
Expecting actual:
"foooo"
to have shorter than 4 but length was 5
The objectUnderTestDescriptor must not be null, if you don't need one this probably means you can simply use Condition(Predicate, String, Object...) instead of a VerboseCondition.
T - the type of object the given condition accept.predicate - the Predicate that tests the value to test.description - describes the Condition verbal.objectUnderTestDescriptor - Function used to describe the value to test when the actual value does not match the predicate. must not be null.VerboseCondition.NullPointerException - if the predicate is null.NullPointerException - if the objectUnderTestDescriptor is null.public boolean matches(T objectUnderTest)
Conditionprotected String buildVerboseDescription(T objectUnderTest, boolean matches)
objectUnderTest - the object to testmatches - the result of the match operationCopyright © 2025. All rights reserved.