Separate setup, behavior, and verification in a compact test.

Arrange Act Assert

ArrangeActAssert.kt
fun total(price: Int, quantity: Int): Int {
    return price * quantity
}

fun main() {
    val price = 
    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 = 
    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 = 
    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")
}
testing Arrange-act-assert keeps a test readable by separating setup, the operation, and the final check.