Testing Basics
Failure Messages
Build a clear message when a check fails.
failure-message
A good failure message states the expected and actual values. A passing check reports a short ok instead.
Failure Messages
FailureMessage.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val actual = 7
val expected = 4
val pass = actual == expected
val message = if (pass) "ok" else "expected " + expected + " but got " + actual
println("pass=" + pass)
println("message=" + message)
}
}
object Main {
def main(args: Array[String]): Unit = {
val actual = 4
val expected = 4
val pass = actual == expected
val message = if (pass) "ok" else "expected " + expected + " but got " + actual
println("pass=" + pass)
println("message=" + message)
}
}
object Main {
def main(args: Array[String]): Unit = {
val actual = 10
val expected = 4
val pass = actual == expected
val message = if (pass) "ok" else "expected " + expected + " but got " + actual
println("pass=" + pass)
println("message=" + message)
}
}
actual ← 7, expected ← 4, pass ← false, message ← expected 4 but got 7
1object Main {2 def main(args: Array[String]): Unit = {3 val actual→ 7 = 7 //@actual=4, 104 val expected→ 4 = 45 val pass→ false = actual7 == expected46 val message→ expected 4 but got 7 = if (passfalse) "ok" else "expected " + expected4 + " but got " + actual778 println("pass=" + passfalse)9 println("message=" + messageexpected 4 but got 7)10 }11}outputpass=false message=expected 4 but got 7
actual ← 4, expected ← 4, pass ← true, message ← ok
1object Main {2 def main(args: Array[String]): Unit = {3 val actual→ 4 = 44 val expected→ 4 = 45 val pass→ true = actual4 == expected46 val message→ ok = if (passtrue) "ok" else "expected " + expected4 + " but got " + actual478 println("pass=" + passtrue)9 println("message=" + messageok)10 }11}outputpass=true message=ok
actual ← 10, expected ← 4, pass ← false, message ← expected 4 but got 10
1object Main {2 def main(args: Array[String]): Unit = {3 val actual→ 10 = 104 val expected→ 4 = 45 val pass→ false = actual10 == expected46 val message→ expected 4 but got 10 = if (passfalse) "ok" else "expected " + expected4 + " but got " + actual1078 println("pass=" + passfalse)9 println("message=" + messageexpected 4 but got 10)10 }11}outputpass=false message=expected 4 but got 10