Testing Basics
Arrange Act Assert
Separate setup, behavior, and verification in a compact test.
testing
Arrange-act-assert keeps a test readable by separating setup, the operation, and the final check.
Arrange Act Assert
ArrangeActAssert.kt
Replay: real traced execution (multi-file project)
fun total(price: Int, quantity: Int): Int {
return price * quantity
}
fun main() {
val price = 5
val quantity = 4
val actual = total(price, quantity)
val expected = 20
val ok = actual == expected
println("arrange=price:$price,quantity:$quantity")
println("actual=$actual")
println("expected=$expected")
println("ok=$ok")
}
fun total(price: Int, quantity: Int): Int {
return price * quantity
}
fun main() {
val price = 3
val quantity = 4
val actual = total(price, quantity)
val expected = 20
val ok = actual == expected
println("arrange=price:$price,quantity:$quantity")
println("actual=$actual")
println("expected=$expected")
println("ok=$ok")
}
fun total(price: Int, quantity: Int): Int {
return price * quantity
}
fun main() {
val price = 10
val quantity = 4
val actual = total(price, quantity)
val expected = 20
val ok = actual == expected
println("arrange=price:$price,quantity:$quantity")
println("actual=$actual")
println("expected=$expected")
println("ok=$ok")
}
price ← 5, quantity ← 4
5fun main() {6 val price→ 5 = 5 //@price=3, 107 val quantity→ 4 = 48 val actual = total(price5, quantity4)9 val expected = 20fun total(price: Int, quantity: Int): Int
1fun total(price5: Int, quantity4: Int): Int {2 return price5 * quantity43}actual ← 20, expected ← 20, ok ← true
7 val quantity = 48 val actual→ 20 = total(price5, quantity4)9 val expected→ 20 = 2010 val ok→ true = actual20 == expected201112 println("arrange=price:$price5,quantity:$quantity4")13 println("actual=$actual20")14 println("expected=$expected20")15 println("ok=$oktrue")16}outputarrange=price:5,quantity:4 actual=20 expected=20 ok=true
price ← 3, quantity ← 4
5fun main() {6 val price→ 3 = 37 val quantity→ 4 = 48 val actual = total(price3, quantity4)9 val expected = 20fun total(price: Int, quantity: Int): Int
1fun total(price3: Int, quantity4: Int): Int {2 return price3 * quantity43}actual ← 12, expected ← 20, ok ← false
7 val quantity = 48 val actual→ 12 = total(price3, quantity4)9 val expected→ 20 = 2010 val ok→ false = actual12 == expected201112 println("arrange=price:$price3,quantity:$quantity4")13 println("actual=$actual12")14 println("expected=$expected20")15 println("ok=$okfalse")16}outputarrange=price:3,quantity:4 actual=12 expected=20 ok=false
price ← 10, quantity ← 4
5fun main() {6 val price→ 10 = 107 val quantity→ 4 = 48 val actual = total(price10, quantity4)9 val expected = 20fun total(price: Int, quantity: Int): Int
1fun total(price10: Int, quantity4: Int): Int {2 return price10 * quantity43}actual ← 40, expected ← 20, ok ← false
7 val quantity = 48 val actual→ 40 = total(price10, quantity4)9 val expected→ 20 = 2010 val ok→ false = actual40 == expected201112 println("arrange=price:$price10,quantity:$quantity4")13 println("actual=$actual40")14 println("expected=$expected20")15 println("ok=$okfalse")16}outputarrange=price:10,quantity:4 actual=40 expected=20 ok=false