Testing Basics
Testing a Function
Check a pure function against a known answer.
test-function
A pure function always returns the same result for the same input, so a test calls it and compares the result with a known expected value.
Testing a Function
TestFunction.scala
Replay: real traced execution (multi-file project)
object Main {
def square(n: Int): Int = {
n * n
}
def main(args: Array[String]): Unit = {
val input = 3
val result = square(input)
val expected = 9
val status = if (result == expected) "pass" else "fail"
println("result=" + result)
println("status=" + status)
}
}
object Main {
def square(n: Int): Int = {
n * n
}
def main(args: Array[String]): Unit = {
val input = 4
val result = square(input)
val expected = 9
val status = if (result == expected) "pass" else "fail"
println("result=" + result)
println("status=" + status)
}
}
object Main {
def square(n: Int): Int = {
n * n
}
def main(args: Array[String]): Unit = {
val input = 5
val result = square(input)
val expected = 9
val status = if (result == expected) "pass" else "fail"
println("result=" + result)
println("status=" + status)
}
}
input ← 3
6def main(args: Array[String]): Unit = {7 val input→ 3 = 3 //@input=4, 58 val result = square(input3)9 val expected = 910 val status = if (result == expected) "pass" else "fail"def square(n: Int): Int =
1object Main {2 def square(n3: Int): Int = {3 n3 * n4 }result ← 9, expected ← 9, status ← pass
7 val input = 3 //@input=4, 58 val result→ 9 = square(input3)9 val expected→ 9 = 910 val status→ pass = if (result9 == expected9) "pass" else "fail"1112 println("result=" + result9)13 println("status=" + statuspass)14 }15}outputresult=9 status=pass
input ← 4
6def main(args: Array[String]): Unit = {7 val input→ 4 = 48 val result = square(input4)9 val expected = 910 val status = if (result == expected) "pass" else "fail"def square(n: Int): Int =
1object Main {2 def square(n4: Int): Int = {3 n4 * n4 }result ← 16, expected ← 9, status ← fail
7 val input = 48 val result→ 16 = square(input4)9 val expected→ 9 = 910 val status→ fail = if (result16 == expected9) "pass" else "fail"1112 println("result=" + result16)13 println("status=" + statusfail)14 }15}outputresult=16 status=fail
input ← 5
6def main(args: Array[String]): Unit = {7 val input→ 5 = 58 val result = square(input5)9 val expected = 910 val status = if (result == expected) "pass" else "fail"def square(n: Int): Int =
1object Main {2 def square(n5: Int): Int = {3 n5 * n4 }result ← 25, expected ← 9, status ← fail
7 val input = 58 val result→ 25 = square(input5)9 val expected→ 9 = 910 val status→ fail = if (result25 == expected9) "pass" else "fail"1112 println("result=" + result25)13 println("status=" + statusfail)14 }15}outputresult=25 status=fail