Split a test into setup, behavior, and verification steps.

testing Arrange-act-assert keeps a test readable by separating input setup, the operation under test, and the final check.

Arrange Act Assert

price
ArrangeActAssert.cs
Replay: real traced execution (multi-file project)
using System;

class Program
{
    static int Total(int price, int quantity)
    {
        return price * quantity;
    }

    static void Main()
    {
        int price = 5;
        int quantity = 4;

        int actual = Total(price, quantity);
        int expected = 20;
        bool ok = actual == expected;

        Console.WriteLine($"arrange=price:{price},quantity:{quantity}");
        Console.WriteLine($"actual={actual}");
        Console.WriteLine($"expected={expected}");
        Console.WriteLine($"ok={ok}");
    }
}
using System;

class Program
{
    static int Total(int price, int quantity)
    {
        return price * quantity;
    }

    static void Main()
    {
        int price = 3;
        int quantity = 4;

        int actual = Total(price, quantity);
        int expected = 20;
        bool ok = actual == expected;

        Console.WriteLine($"arrange=price:{price},quantity:{quantity}");
        Console.WriteLine($"actual={actual}");
        Console.WriteLine($"expected={expected}");
        Console.WriteLine($"ok={ok}");
    }
}
using System;

class Program
{
    static int Total(int price, int quantity)
    {
        return price * quantity;
    }

    static void Main()
    {
        int price = 10;
        int quantity = 4;

        int actual = Total(price, quantity);
        int expected = 20;
        bool ok = actual == expected;

        Console.WriteLine($"arrange=price:{price},quantity:{quantity}");
        Console.WriteLine($"actual={actual}");
        Console.WriteLine($"expected={expected}");
        Console.WriteLine($"ok={ok}");
    }
}
  1. price ← 5, quantity ← 4

    10static void Main()11{12    int price→ 5 = 5; //@price=3, 1013    int quantity→ 4 = 4;1415    int actual = Total(price5, quantity4);16    int expected = 20;
  2. static int Total(int price, int quantity)

    4{5    static int Total(int price5, int quantity4)6    {7        return price5 * quantity4;8    }
  3. actual ← 20, expected ← 20, ok ← True

    15    int actual→ 20 = Total(price5, quantity4);16    int expected→ 20 = 20;17    bool ok→ True = actual20 == expected20;1819    Console.WriteLine($"arrange=price:{price5},quantity:{quantity4}");20    Console.WriteLine($"actual={actual20}");21    Console.WriteLine($"expected={expected20}");22    Console.WriteLine($"ok={okTrue}");23}
    outputarrange=price:5,quantity:4
    actual=20
    expected=20
    ok=True
  1. price ← 3, quantity ← 4

    10static void Main()11{12    int price→ 3 = 3;13    int quantity→ 4 = 4;1415    int actual = Total(price3, quantity4);16    int expected = 20;
  2. static int Total(int price, int quantity)

    4{5    static int Total(int price3, int quantity4)6    {7        return price3 * quantity4;8    }
  3. actual ← 12, expected ← 20, ok ← False

    15    int actual→ 12 = Total(price3, quantity4);16    int expected→ 20 = 20;17    bool ok→ False = actual12 == expected20;1819    Console.WriteLine($"arrange=price:{price3},quantity:{quantity4}");20    Console.WriteLine($"actual={actual12}");21    Console.WriteLine($"expected={expected20}");22    Console.WriteLine($"ok={okFalse}");23}
    outputarrange=price:3,quantity:4
    actual=12
    expected=20
    ok=False
  1. price ← 10, quantity ← 4

    10static void Main()11{12    int price→ 10 = 10;13    int quantity→ 4 = 4;1415    int actual = Total(price10, quantity4);16    int expected = 20;
  2. static int Total(int price, int quantity)

    4{5    static int Total(int price10, int quantity4)6    {7        return price10 * quantity4;8    }
  3. actual ← 40, expected ← 20, ok ← False

    15    int actual→ 40 = Total(price10, quantity4);16    int expected→ 20 = 20;17    bool ok→ False = actual40 == expected20;1819    Console.WriteLine($"arrange=price:{price10},quantity:{quantity4}");20    Console.WriteLine($"actual={actual40}");21    Console.WriteLine($"expected={expected20}");22    Console.WriteLine($"ok={okFalse}");23}
    outputarrange=price:10,quantity:4
    actual=40
    expected=20
    ok=False