Class Failures


  • public class Failures
    extends java.lang.Object
    Failure actions.
    • Field Detail

      • LINE_SEPARATOR

        private static final java.lang.String LINE_SEPARATOR
      • INSTANCE

        private static final Failures INSTANCE
      • printThreadDump

        private boolean printThreadDump
        flag indicating that in case of a failure a threaddump is printed out.
      • removeAssertJRelatedElementsFromStackTrace

        private boolean removeAssertJRelatedElementsFromStackTrace
        flag indicating whether or not we remove elements related to AssertJ from assertion error stack trace.
    • Constructor Detail

      • Failures

        Failures()
    • Method Detail

      • instance

        public static Failures instance()
        Returns the singleton instance of this class.
        Returns:
        the singleton instance of this class.
      • setRemoveAssertJRelatedElementsFromStackTrace

        public void setRemoveAssertJRelatedElementsFromStackTrace​(boolean removeAssertJRelatedElementsFromStackTrace)
        Sets whether we remove elements related to AssertJ from assertion error stack trace.
        Parameters:
        removeAssertJRelatedElementsFromStackTrace - flag
      • isRemoveAssertJRelatedElementsFromStackTrace

        public boolean isRemoveAssertJRelatedElementsFromStackTrace()
        Returns whether or not we remove elements related to AssertJ from assertion error stack trace.
        Returns:
        whether or not we remove elements related to AssertJ from assertion error stack trace.
      • failure

        public java.lang.AssertionError failure​(AssertionInfo info,
                                                ErrorMessageFactory messageFactory)
        Creates a AssertionError following this pattern:
        1. creates a AssertionError using AssertionInfo.overridingErrorMessage() as the error message if such value is not null, or
        2. uses the given ErrorMessageFactory to create the detail message of the AssertionError, prepending the value of AssertionInfo.description() to the error message
        Parameters:
        info - contains information about the failed assertion.
        messageFactory - knows how to create detail messages for AssertionErrors.
        Returns:
        the created AssertionError.
      • failure

        public java.lang.AssertionError failure​(AssertionInfo info,
                                                ErrorMessageFactory messageFactory,
                                                java.lang.Object actual,
                                                java.lang.Object expected)
      • failureIfErrorMessageIsOverridden

        public java.lang.AssertionError failureIfErrorMessageIsOverridden​(AssertionInfo info)
      • failure

        public java.lang.AssertionError failure​(java.lang.String message)
        Creates a AssertionError using the given String as message.

        It filters the AssertionError stack trace be default, to have full stack trace use setRemoveAssertJRelatedElementsFromStackTrace(boolean).

        Parameters:
        message - the message of the AssertionError to create.
        Returns:
        the created AssertionError.
      • expectedThrowableNotThrown

        public java.lang.AssertionError expectedThrowableNotThrown​(java.lang.Class<? extends java.lang.Throwable> throwableClass)
        Creates a AssertionError for a Throwable class that was expected to be thrown.
        Parameters:
        throwableClass - the Throwable class that was expected to be thrown.
        Returns:
        the created AssertionError.
        Since:
        2.6.0 / 3.6.0
      • printThreadDumpIfNeeded

        public void printThreadDumpIfNeeded()
      • removeAssertJRelatedElementsFromStackTraceIfNeeded

        public void removeAssertJRelatedElementsFromStackTraceIfNeeded​(java.lang.AssertionError assertionError)
        If is removeAssertJRelatedElementsFromStackTrace is true, it filters the stack trace of the given AssertionError by removing stack trace elements related to AssertJ in order to get a more readable stack trace.

        See example below :

         --------------- stack trace not filtered -----------------
          org.junit.ComparisonFailure: expected:<'[Ronaldo]'> but was:<'[Messi]'>
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
          at org.assertj.core.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:34)
          at org.assertj.core.error.ShouldBeEqual.newComparisonFailure(ShouldBeEqual.java:111)
          at org.assertj.core.error.ShouldBeEqual.comparisonFailure(ShouldBeEqual.java:103)
          at org.assertj.core.error.ShouldBeEqual.newAssertionError(ShouldBeEqual.java:81)
          at org.assertj.core.internal.Failures.failure(Failures.java:76)
          at org.assertj.core.internal.Objects.assertEqual(Objects.java:116)
          at org.assertj.core.api.AbstractAssert.isEqualTo(AbstractAssert.java:74)
          at examples.StackTraceFilterExample.main(StackTraceFilterExample.java:13)
          
          --------------- stack trace filtered -----------------
          org.junit.ComparisonFailure: expected:<'[Ronaldo]'> but was:<'[Messi]'>
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
          at examples.StackTraceFilterExample.main(StackTraceFilterExample.java:20)
        Method is public because we need to call it from ShouldBeEqual.newAssertionError(Description, org.assertj.core.presentation.Representation) that is building a junit ComparisonFailure by reflection.
        Parameters:
        assertionError - the AssertionError to filter stack trace if option is set.
      • enablePrintThreadDump

        public void enablePrintThreadDump()
        Set the flag indicating that in case of a failure a threaddump is printed out.
      • threadDumpDescription

        public static java.lang.String threadDumpDescription()