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

actual
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)
  }
}
  1. 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
  1. 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
  1. 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