Class Failures


  • public class Failures
    extends java.lang.Object
    Failure actions.
    Author:
    Yvonne Wang, Alex Ruiz
    • Method Detail

      • instance

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

        public void setRemoveFestRelatedElementsFromStackTrace​(boolean removeFestRelatedElementsFromStackTrace)
        Sets wether we remove elements related to Fest from assertion error stack trace.
        Parameters:
        removeFestRelatedElementsFromStackTrace - flag
      • failure

        public java.lang.AssertionError failure​(AssertionInfo info,
                                                ErrorMessageFactory message)
        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.
        message - knows how to create detail messages for AssertionErrors.
        Returns:
        the created AssertionError.
      • 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 setRemoveFestRelatedElementsFromStackTrace(boolean).

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

        public void removeFestRelatedElementsFromStackTraceIfNeeded​(java.lang.AssertionError assertionError)
        If is removeFestRelatedElementsFromStackTrace is true, it filters the stack trace of the given AssertionError by removing stack trace elements related to Fest 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.fest.assertions.error.ConstructorInvoker.newInstance(ConstructorInvoker.java:34)
          at org.fest.assertions.error.ShouldBeEqual.newComparisonFailure(ShouldBeEqual.java:111)
          at org.fest.assertions.error.ShouldBeEqual.comparisonFailure(ShouldBeEqual.java:103)
          at org.fest.assertions.error.ShouldBeEqual.newAssertionError(ShouldBeEqual.java:81)
          at org.fest.assertions.internal.Failures.failure(Failures.java:76)
          at org.fest.assertions.internal.Objects.assertEqual(Objects.java:116)
          at org.fest.assertions.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(org.fest.assertions.description.Description) that is building a junit ComparisonFailure by reflection.
        Parameters:
        assertionError - the AssertionError to filter stack trace if option is set.