Assertion یا اسرشن یک شرط قابل بررسی در تست یا زمان اجرای برنامه است که بیان می‌کند کدام وضعیت باید برقرار باشد. در منابع فارسی ممکن است «گزاره آزمون» هم گفته شود، اما در محیط توسعه معمولاً واژه اسرشن رایج‌تر است.

تفاوت تست و قرارداد زمان اجرا

در تست خودکار، اسرشن نتیجه واقعی را با انتظار مقایسه می‌کند و در صورت تفاوت تست شکست می‌خورد. در کد تولید نیز ممکن است برای بیان یک فرض داخلی استفاده شود، اما نباید جایگزین اعتبارسنجی ورودی غیرقابل اعتماد شود.

// PHPUnit
$this->assertSame(250_000, $cart->total());
$this->assertTrue($order->isPaid());
def test_discount():
    total = 200_000 * 0.9
    assert total == 180_000
if got != want {
    t.Fatalf("total = %v, want %v", got, want)
}
// xUnit
Assert.Equal(250_000, cart.Total);

نکته

در پایتون assert ممکن است با اجرای بهینه‌شده -O حذف شود. برای کنترل اعتبار ورودی کاربر از شرط و Exception مناسب استفاده کنید.

اصطلاحات مرتبط: پی‌اچ‌پی‌یونیت، پست پی‌اچ‌پی، یونیت تست، یونیت تست.