CodeShot
NUnit1 دقیقه مطالعه

NUnit چیست؟

یکی از قدیمی‌ترین و پرکاربردترین فریمورک‌های تست در دات‌نت، با Attributeهای [Test] و [TestCase] و مجموعه غنی Assert.

چرا مهم است؟

NUnit در بسیاری از پروژه‌های قدیمی‌تر و سازمانی دات‌نت هنوز استاندارد است و مجموعه Assert آن (Assert.That با Constraint Model) خوانایی بالایی دارد.

تعریف

NUnit یکی از قدیمی‌ترین فریمورک‌های تست دات‌نت (الهام‌گرفته از JUnit) است که با [TestFixture] روی کلاس و [Test] روی متد، تست را مشخص می‌کند.

مثال

[TestFixture]
public class DiscountCalculatorTests
{
    [TestCase(100, 10)]
    [TestCase(50, 5)]
    public void Calculate_ReturnsTenPercentOff(decimal price, decimal expected)
    {
        var calculator = new DiscountCalculator();

        var result = calculator.Calculate(price);

        Assert.That(result, Is.EqualTo(expected));
    }
}

Setup/Teardown

[SetUp]
public void Setup() { /* قبل از هر تست */ }

[TearDown]
public void TearDown() { /* بعد از هر تست */ }

تفاوت کلیدی با xUnit

NUnit به‌صورت پیش‌فرض یک نمونه از کلاس تست را بین تست‌ها به اشتراک می‌گذارد (مگر [Parallelizable] تنظیم شود) و Setup/Teardown را با Attribute جداگانه می‌نویسد؛ xUnit برای هر تست نمونه جدید می‌سازد و Setup را در سازنده می‌نویسد.

اشتباه رایج

❌ استفاده از Assert.AreEqual قدیمی به‌جای مدل جدیدتر و خواناتر Assert.That(x, Is.EqualTo(y)).

منبع و مطالعه بیشتر

خلاصه

NUnit با [TestFixture]/[Test]/[TestCase] کار می‌کند و برخلاف xUnit، پیش‌فرض یک نمونه کلاس را بین تست‌ها به اشتراک می‌گذارد. مدل جدید Assert.That(x, Is.EqualTo(y)) را به Assert.AreEqual قدیمی ترجیح دهید. مرجع کامل: مستندات رسمی NUnit.

این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←