StopTest
public struct StopTest : Error
Stops execution of test when thrown inside an it
block, emitting a failure message.
Unlike other errors that can be thrown during a test, StopTest
represents an expected
failure, with the failure description tied to the file and line it is thrown on.
Tests can also be stopped silently by throwing StopTest.silently
.
The primary use case of StopTest
as opposed to normal error logging is when a condition
is critical for the remainder of the test. It serves as an alternative to force unwrapping
or out-of-range subscripts that could be cause the test to crash.
For example,
guard let value = getValue() else {
throw StopTest("Got a null value from `getValue()`)
}
When used with Nimble, any expectation can stop a test by adding
.onFailure(throw: StopTest.silently)
.
For example,
try expect(array).toEventually(haveCount(10)).onFailure(throw: StopTest.silently)
-
Undocumented
Declaration
Swift
public let failureDescription: String
-
Undocumented
Declaration
Swift
public let reportError: Bool
-
Undocumented
Declaration
Swift
public let callsite: Callsite
-
Returns a new
StopTest
instance that, when thrown, stops the test and logs an error.Declaration
Swift
public init(_ failureDescription: String, file: FileString = #file, line: UInt = #line)
Parameters
failureDescription
The message to display in the test results.
file
The absolute path to the file containing the error. A sensible default is provided.
line
The line containing the error. A sensible default is provided.
-
An error that, when thrown, stops the test without logging an error.
This is meant to be used alongside methods that have already logged a test failure.
For example,
func checkProperty() -> Bool { if property.isValid { return true } else { XCTFail("\(property) is not valid") return false } } guard checkProperty() else { throw StopTest.error }
Declaration
Swift
public static let silently: StopTest