Testing Basics
Arrange Act Assert
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
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}");
}
}
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;static int Total(int price, int quantity)
4{5 static int Total(int price5, int quantity4)6 {7 return price5 * quantity4;8 }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
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;static int Total(int price, int quantity)
4{5 static int Total(int price3, int quantity4)6 {7 return price3 * quantity4;8 }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
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;static int Total(int price, int quantity)
4{5 static int Total(int price10, int quantity4)6 {7 return price10 * quantity4;8 }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