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

price
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")
}
  1. 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 = 20
  2. fun total(price: Int, quantity: Int): Int

    1fun total(price5: Int, quantity4: Int): Int {2    return price5 * quantity43}
  3. 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
  1. price ← 3, quantity ← 4

    5fun main() {6    val price→ 3 = 37    val quantity→ 4 = 48    val actual = total(price3, quantity4)9    val expected = 20
  2. fun total(price: Int, quantity: Int): Int

    1fun total(price3: Int, quantity4: Int): Int {2    return price3 * quantity43}
  3. 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
  1. price ← 10, quantity ← 4

    5fun main() {6    val price→ 10 = 107    val quantity→ 4 = 48    val actual = total(price10, quantity4)9    val expected = 20
  2. fun total(price: Int, quantity: Int): Int

    1fun total(price10: Int, quantity4: Int): Int {2    return price10 * quantity43}
  3. 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