Class HamcrestCondition<T>

java.lang.Object
org.assertj.core.api.Condition<T>
org.assertj.core.api.HamcrestCondition<T>
All Implemented Interfaces:
Descriptable<Condition<T>>

public class HamcrestCondition<T> extends Condition<T>
Allows to use a Hamcrest matcher as a condition. Example:
 Condition<String> aStringContainingA = new HamcrestCondition<>(containsString("a"));

 // assertions will pass
 assertThat("abc").is(aStringContainingA);
 assertThat("bc").isNot(aStringContainingA);

 // assertion will fail
 assertThat("bc").is(aStringContainingA);
By static-importing the matching(Matcher) method you can do:
 assertThat("abc").is(matching(containsString("a")));
Since:
2.9.0 / 3.9.0
  • Constructor Details

    • HamcrestCondition

      public HamcrestCondition(org.hamcrest.Matcher<? extends T> matcher)
      Constructs a Condition using the matcher given as a parameter.
      Parameters:
      matcher - the Hamcrest matcher to use as a condition
  • Method Details

    • matching

      public static <T> HamcrestCondition<T> matching(org.hamcrest.Matcher<? extends T> matcher)
      Constructs a Condition using the matcher given as a parameter.

      Example:

       import static org.assertj.core.api.Assertions.assertThat;
       import static org.assertj.core.api.HamcrestCondition.matching;
       import static org.hamcrest.core.StringContains.containsString;
      
       assertThat("abc").is(matching(containsString("a")));
      Type Parameters:
      T - the type the condition is about
      Parameters:
      matcher - the Hamcrest matcher to use as a condition
      Returns:
      the built HamcrestCondition
    • matches

      public boolean matches(T value)
      Verifies that the given value satisfies this condition.
      Overrides:
      matches in class Condition<T>
      Parameters:
      value - the value to verify.
      Returns:
      true if the given value satisfies this condition; false otherwise.