Exception that indicates a test failed. The purpose of this exception is to encapsulate information about
the stack depth at which the line of test code that failed resides, so that information can be presented to
the user that makes it quick to find the failing line of test code. (I.e., the user need not scan through the
stack trace to find the correct filename and line number of the failing test.)

Parameters

message - an optional detail message for this TestFailedException.

cause - an optional cause, the Throwable that caused this TestFailedException to be thrown.

failedCodeStackDepth - the depth in the stack trace of this exception at which the line of test code that failed resides.

undecoratedMessage - just a short message that has no redundancy with args, labels, etc. The regular "message" has everything in it