Testing Basics
Failure Messages
A useful failure message explains the expected and actual values.
Build a clear message
failure_messages.swift
Replay: real traced execution (multi-file project)
let actualName = "swift"
let expectedName = "Swift"
let passed = actualName == expectedName
let message = passed ? "names match" : "expected \(expectedName), got \(actualName)"
print(message)
let actualName = "Swift"
let expectedName = "Swift"
let passed = actualName == expectedName
let message = passed ? "names match" : "expected \(expectedName), got \(actualName)"
print(message)
let actualName = "trace"
let expectedName = "Swift"
let passed = actualName == expectedName
let message = passed ? "names match" : "expected \(expectedName), got \(actualName)"
print(message)
actualName ← swift, expectedName ← Swift, passed ← false, message ← expected Swift, got swift
1let actualName→ swift = "swift" //@actualName="Swift", "trace"2let expectedName→ Swift = "Swift"3let passed→ false = actualNameswift == expectedNameSwift4let message→ expected Swift, got swift = passedfalse ? "names match" : "expected \(expectedNameSwift), got \(actualNameswift)"56print(messageexpected Swift, got swift)outputexpected Swift, got swift
actualName ← Swift, expectedName ← Swift, passed ← true, message ← names match
1let actualName→ Swift = "Swift"2let expectedName→ Swift = "Swift"3let passed→ true = actualNameSwift == expectedNameSwift4let message→ names match = passedtrue ? "names match" : "expected \(expectedNameSwift), got \(actualNameSwift)"56print(messagenames match)outputnames match
actualName ← trace, expectedName ← Swift, passed ← false, message ← expected Swift, got trace
1let actualName→ trace = "trace"2let expectedName→ Swift = "Swift"3let passed→ false = actualNametrace == expectedNameSwift4let message→ expected Swift, got trace = passedfalse ? "names match" : "expected \(expectedNameSwift), got \(actualNametrace)"56print(messageexpected Swift, got trace)outputexpected Swift, got trace
failure message
Failure messages make a broken check easier to understand.