Testing Basics
Equality Assertion
A basic test compares an actual value with an expected value.
Compare actual and expected
equality_assertion.swift
Replay: real traced execution (multi-file project)
func add(_ left: Int, _ right: Int) -> Int {
return left + right
}
let expected = 7
let actual = add(3, 4)
let passed = actual == expected
let message = passed ? "pass" : "fail expected \(expected) got \(actual)"
print(message)
func add(_ left: Int, _ right: Int) -> Int {
return left + right
}
let expected = 8
let actual = add(3, 4)
let passed = actual == expected
let message = passed ? "pass" : "fail expected \(expected) got \(actual)"
print(message)
func add(_ left: Int, _ right: Int) -> Int {
return left + right
}
let expected = 10
let actual = add(3, 4)
let passed = actual == expected
let message = passed ? "pass" : "fail expected \(expected) got \(actual)"
print(message)
expected ← 7
5let expected→ 7 = 7 //@expected=8, 106let actual = add(3, 4)7let passed = actual == expectedfunc add(_ left: Int, _ right: Int) -> Int
1func add(_ left3: Int, _ right4: Int) -> Int {2 return left3 + right43}actual ← 7, passed ← true, message ← pass
5let expected = 7 //@expected=8, 106let actual→ 7 = add(3, 4)7let passed→ true = actual7 == expected78let message→ pass = passedtrue ? "pass" : "fail expected \(expected7) got \(actual7)"910print(messagepass)outputpass
expected ← 8
5let expected→ 8 = 86let actual = add(3, 4)7let passed = actual == expectedfunc add(_ left: Int, _ right: Int) -> Int
1func add(_ left3: Int, _ right4: Int) -> Int {2 return left3 + right43}actual ← 7, passed ← false, message ← fail expected 8 got 7
5let expected = 86let actual→ 7 = add(3, 4)7let passed→ false = actual7 == expected88let message→ fail expected 8 got 7 = passedfalse ? "pass" : "fail expected \(expected8) got \(actual7)"910print(messagefail expected 8 got 7)outputfail expected 8 got 7
expected ← 10
5let expected→ 10 = 106let actual = add(3, 4)7let passed = actual == expectedfunc add(_ left: Int, _ right: Int) -> Int
1func add(_ left3: Int, _ right4: Int) -> Int {2 return left3 + right43}actual ← 7, passed ← false, message ← fail expected 10 got 7
5let expected = 106let actual→ 7 = add(3, 4)7let passed→ false = actual7 == expected108let message→ fail expected 10 got 7 = passedfalse ? "pass" : "fail expected \(expected10) got \(actual7)"910print(messagefail expected 10 got 7)outputfail expected 10 got 7
equality assertion
An equality assertion is just a comparison that reports whether the observed value matches the expected value.