Testing Basics
Table Cases
Run the same check over a small table of inputs.
Table Cases
TableCases.kt
fun addBonus(value: Int, bonus: Int): Int {
return value + bonus
}
fun main() {
val bonus =
val inputs = listOf(2, 4, 6)
val expected = listOf(3, 5, 7)
var passed = 0
for (index in inputs.indices) {
val actual = addBonus(inputs[index], bonus)
val ok = actual == expected[index]
if (ok) {
passed++
}
println("case=$index, ok=$ok")
}
println("passed=$passed")
}
fun addBonus(value: Int, bonus: Int): Int {
return value + bonus
}
fun main() {
val bonus =
val inputs = listOf(2, 4, 6)
val expected = listOf(3, 5, 7)
var passed = 0
for (index in inputs.indices) {
val actual = addBonus(inputs[index], bonus)
val ok = actual == expected[index]
if (ok) {
passed++
}
println("case=$index, ok=$ok")
}
println("passed=$passed")
}
fun addBonus(value: Int, bonus: Int): Int {
return value + bonus
}
fun main() {
val bonus =
val inputs = listOf(2, 4, 6)
val expected = listOf(3, 5, 7)
var passed = 0
for (index in inputs.indices) {
val actual = addBonus(inputs[index], bonus)
val ok = actual == expected[index]
if (ok) {
passed++
}
println("case=$index, ok=$ok")
}
println("passed=$passed")
}
testing
Table-driven tests keep inputs and expected outputs close together so the same assertion can run repeatedly.