A useful failure message explains the expected and actual values.

Build a clear message

failure_messages.swift
let actualName = 
let expectedName = "Swift"
let passed = actualName == expectedName
let message = passed ? "names match" : "expected \(expectedName), got \(actualName)"

print(message)
let actualName = 
let expectedName = "Swift"
let passed = actualName == expectedName
let message = passed ? "names match" : "expected \(expectedName), got \(actualName)"

print(message)
let actualName = 
let expectedName = "Swift"
let passed = actualName == expectedName
let message = passed ? "names match" : "expected \(expectedName), got \(actualName)"

print(message)
failure message Failure messages make a broken check easier to understand.