Interface Descriptable<SELF>

    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default SELF as​(String description, Object... args)
      Sets the description of the assertion that is going to be called after.
      default SELF as​(Supplier<String> descriptionSupplier)
      Lazily specifies the description of the assertion that is going to be called, the given description is not evaluated if the assertion succeeds.
      default SELF as​(Description description)
      Sets the description of the assertion that is going to be called after.
      default SELF describedAs​(String description, Object... args)
      Sets the description of the assertion that is going to be called after.
      SELF describedAs​(Description description)
      Sets the description of the assertion that is going to be called after.
    • Method Detail

      • as

        default SELF as​(String description,
                        Object... args)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        The description follows String.format(String, Object...) syntax.

        Example :

         try {
           // set an incorrect age to Mr Frodo which is really 33 years old.
           frodo.setAge(50);
           // specify a test description (call as() before the assertion !), it supports String format syntax.
           assertThat(frodo.getAge()).as("check %s's age", frodo.getName()).isEqualTo(33);
         } catch (AssertionError e) {
           assertThat(e).hasMessage("[check Frodo's age]\n
                                     expected: 33\n
                                     but was : 50");
         }
        Parameters:
        description - the new description to set.
        args - optional parameter if description is a format String.
        Returns:
        this object.
        Throws:
        NullPointerException - if the description is null.
        See Also:
        describedAs(String, Object...)
      • as

        default SELF as​(Supplier<String> descriptionSupplier)
        Lazily specifies the description of the assertion that is going to be called, the given description is not evaluated if the assertion succeeds.

        The description must be set before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        Example :

         // set an incorrect age to Mr Frodo which we all know is 33 years old.
         frodo.setAge(50);
        
         // the lazy test description is not evaluated as the assertion succeeds
         assertThat(frodo.getAge()).as(() -> "check Frodo's age").isEqualTo(50);
        
         try
         {
           // the lazy test description is evaluated as the assertion fails
           assertThat(frodo.getAge()).as(() -> "check Frodo's age").isEqualTo(33);
         }
         catch (AssertionError e)
         {
           assertThat(e).hasMessage("[check Frodo's age]\n
                                     expected: 33\n
                                     but was : 50");
         }
        Parameters:
        descriptionSupplier - the description Supplier.
        Returns:
        this object.
        Throws:
        IllegalStateException - if the descriptionSupplier is null when evaluated.
      • as

        default SELF as​(Description description)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        This overloaded version of "describedAs" offers more flexibility than the one taking a String by allowing users to pass their own implementation of a description. For example, a description that creates its value lazily, only when an assertion failure occurs.

        Parameters:
        description - the new description to set.
        Returns:
        this object.
        Throws:
        NullPointerException - if the description is null.
        See Also:
        describedAs(Description)
      • describedAs

        default SELF describedAs​(String description,
                                 Object... args)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        Alias for as(String, Object...) since "as" is a keyword in Groovy.

        Parameters:
        description - the new description to set.
        args - optional parameter if description is a format String.
        Returns:
        this object.
        Throws:
        NullPointerException - if the description is null.
      • describedAs

        SELF describedAs​(Description description)
        Sets the description of the assertion that is going to be called after.

        You must set it before calling the assertion otherwise it is ignored as the failing assertion breaks the chained call by throwing an AssertionError.

        This overloaded version of "describedAs" offers more flexibility than the one taking a String by allowing users to pass their own implementation of a description. For example, a description that creates its value lazily, only when an assertion failure occurs.

        Parameters:
        description - the new description to set.
        Returns:
        this object.
        Throws:
        NullPointerException - if the description is null.