Class Failures

java.lang.Object
org.fest.assertions.internal.Failures

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

    • 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 AssertionError failure(AssertionInfo info, AssertionErrorFactory factory)
      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 AssertionErrorFactory to create an AssertionError, prepending the value of AssertionInfo.description() to the error message
      Parameters:
      info - contains information about the failed assertion.
      factory - knows how to create AssertionErrors.
      Returns:
      the created AssertionError.
    • failure

      public 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 AssertionError failure(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(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.