StackDepth

Trait that encapsulates the information required of an exception thrown by ScalaTest's assertions and matchers, which includes a stack depth at which the failing line of test code resides.

This trait exists so that it can be mixed into two exception superclasses, StackDepthException, from which extend several exceptions that do not depend on JUnit, and JUnitTestFailedError, which does depend on JUnit. The latter, which requires JUnit be in the classpath, ensures failed ScalaTest assertions are reported as "failures," not "errors," by JUnit.

class Object
trait Matchable
class Any
Throwable

Value members

Abstract methods

def cause: Option[Throwable]

An optional cause, the Throwable that caused this StackDepth exception to be thrown.

An optional cause, the Throwable that caused this StackDepth exception to be thrown.

def failedCodeFilePathname: Option[String]

A string that provides the full pathname of the source file containing the line of code that failed, suitable for presenting to a user.

A string that provides the full pathname of the source file containing the line of code that failed, suitable for presenting to a user.

Returns:

a string containing the full pathname of the source file containing the line of code that caused this exception

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

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

def message: Option[String]

An optional detail message for this StackDepth exception.

An optional detail message for this StackDepth exception.

def position: Option[Position]

An optional source position describing the line of test code that caused this exception.

An optional source position describing the line of test code that caused this exception.

Returns an exception of the same class with failedExceptionStackDepth set to 0 and all frames above this stack depth severed off. This can be useful when working with tools (such as IDEs) that do not directly support ScalaTest. (Tools that directly support ScalaTest can use the stack depth information delivered in the StackDepth exceptions.)

Returns an exception of the same class with failedExceptionStackDepth set to 0 and all frames above this stack depth severed off. This can be useful when working with tools (such as IDEs) that do not directly support ScalaTest. (Tools that directly support ScalaTest can use the stack depth information delivered in the StackDepth exceptions.)

Concrete methods

def failedCodeFileName: Option[String]

A string that provides the filename of the line of code that failed, suitable for presenting to a user, which is taken from this exception's StackTraceElement at the depth specified by failedCodeStackDepth.

A string that provides the filename of the line of code that failed, suitable for presenting to a user, which is taken from this exception's StackTraceElement at the depth specified by failedCodeStackDepth.

This is a def instead of a val because exceptions are mutable: their stack trace can be changed after the exception is created. This is done, for example, by the SeveredStackTraces trait.

Returns:

a string containing the filename that caused the failed test

A string that provides the filename and line number of the line of code that failed, suitable for presenting to a user of the failing line. It calls failedCodeFileName and failedCodeLineNumber to get the failing filename and line number.

A string that provides the filename and line number of the line of code that failed, suitable for presenting to a user of the failing line. It calls failedCodeFileName and failedCodeLineNumber to get the failing filename and line number.

failedCodeFileName and failedCodeLineNumber will fall back to exception stack trace when Position is not avaiable, this is the reason it is a def instead of a val, because exceptions are mutable: their stack trace can be changed after the exception is created. This is done, for example, by the SeveredStackTraces trait.

Returns:

a user-presentable string containing the filename and line number that caused the failed test

def failedCodeLineNumber: Option[Int]

A string that provides the line number of the line of code that failed, suitable for presenting to a user, which is taken from this exception's StackTraceElement at the depth specified by failedCodeStackDepth.

A string that provides the line number of the line of code that failed, suitable for presenting to a user, which is taken from this exception's StackTraceElement at the depth specified by failedCodeStackDepth.

This is a def instead of a val because exceptions are mutable: their stack trace can be changed after the exception is created. This is done, for example, by the SeveredStackTraces trait.

Returns:

a string containing the line number that caused the failed test

Concrete fields

A string that provides the absolute filename and line number of the line of code that failed, suitable for presenting to a user of the failing line. It calls failedCodeFilePathname and failedCodeLineNumber to get the failing absolute filename and line number.

A string that provides the absolute filename and line number of the line of code that failed, suitable for presenting to a user of the failing line. It calls failedCodeFilePathname and failedCodeLineNumber to get the failing absolute filename and line number.

Returns:

a user-presentable string containing the absolute filename and line number that caused the failed test