پرشین تم مقالات آموزش تست واحد با NUnit در سی شارپ

آموزش تست واحد با NUnit در سی شارپ

image profile پرشین تم - 03 دی 1403 - 01:57 دانلود مقاله

بیایید یک مثال اساسی از نحوه نوشتن یک تست واحد در سی شارپ با استفاده از چارچوب NUnit را مرور کنیم. این فریم ورک به دلیل سادگی و ویژگی های قدرتمند به طور گسترده ای برای تست واحد دات نت استفاده می شود.

آموزش تست واحد با NUnit در سی شارپ

 

تست واحد چیست؟

تست واحد فرآیندی است که در آن واحدها یا اجزای یک نرم افزار آزمایش می شوند تا اطمینان حاصل شود که مطابق انتظار کار می کنند. هدف این است که هر قسمت از برنامه را جدا کنید و نشان دهید که هر قسمت صحیح است.

 

مراحل نوشتن تست های واحد در سی شارپ با NUnit:

1. ایجاد یک کلاس ساده برای آزمایش: بیایید با یک کلاس Calculator ساده شروع کنیم که دو متد دارد: Add و Subtract.

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public int Subtract(int a, int b)
    {
        return a - b;
    }
}

2. محیط تست را تنظیم کنید:

  • مطمئن شوید که یک پروژه تست واحد در راه حل خود دارید.
  • NUnit و NUnit3TestAdapter را از طریق NuGet Package Manager نصب کنید. اینها ابزارهایی هستند که به شما در نوشتن و اجرای تست ها کمک می کنند.

3. اولین تست خود را بنویسید: یک کلاس آزمایشی جدید به نام CalculatorTests در پروژه آزمایشی خود ایجاد کنید.

using NUnit.Framework;

[TestFixture] // This marks the class as containing test methods
public class CalculatorTests
{
    private Calculator _calculator;
    [SetUp] // This runs before each test method
    public void SetUp()
    {
        _calculator = new Calculator(); // Initialize the Calculator object before each test
    }

    [Test] // This marks the method as a test
    public void Add_WhenCalled_ReturnsSumOfArguments()
    {
        var result = _calculator.Add(2, 3);
        Assert.AreEqual(5, result); // Check if the result is as expected
    }

    [Test] // Another test method
    public void Subtract_WhenCalled_ReturnsDifferenceOfArguments()
    {
        var result = _calculator.Subtract(5, 3);
        Assert.AreEqual(2, result); // Check if the result is as expected
    }
}

توضیح کد آزمون:

  • [TestFixture]: این ویژگی به NUnit می‌گوید که این کلاس حاوی تست‌هایی است.
  • SetUp(): متد SetUp قبل از هر تست اجرا می شود. شی ماشین حساب را مقداردهی اولیه می کند و از یک نمونه جدید برای هر تست اطمینان حاصل می کند.
  • [Test]: این ویژگی متدها را به عنوان تست هایی که NUnit باید اجرا کند علامت گذاری می کند.
  • Assert.AreEqual(): این بررسی می کند که آیا نتیجه حاصل از متد Add یا Subtract همان چیزی است که ما انتظار داریم. اگر مقادیر مورد انتظار و واقعی مطابقت نداشته باشند، آزمون با شکست مواجه می شود.

 

اجرای تست ها:

1. Open Test Explorer: در Visual Studio، Test Explorer را باز کنید تا تست های خود را ببینید.

2. اجرای تست ها: برای اجرای تمام تست ها روی دکمه "Run All" کلیک کنید.

3. بررسی نتایج: اکسپلورر تست نشان می‌دهد که کدام تست‌ها قبول شده‌اند و کدام شکست خورده‌اند. اگر همه چیز خوب پیش برود، آزمون‌های شما باید قبول شوند، که نشان می‌دهد روش‌های ماشین حساب مطابق انتظار کار می‌کنند.

 

بهترین روش ها برای تست واحد:

1. Arrange, Act, Assert:

  • Arrange: اشیاء و پیش نیازهای آزمون را تنظیم کنید.
  • Act: روش مورد آزمایش را اجرا کنید.
  • Assert: نتیجه را تأیید کنید.
[Test]
public void Add_WhenCalled_ReturnsSumOfArguments()
{
    // Arrange
    var calculator = new Calculator();    

    // Act
    var result = calculator.Add(2, 3);
  
    // Assert
    Assert.AreEqual(5, result);
}

2. نام‌های آزمون تشریحی: از نام‌هایی استفاده کنید که به وضوح آنچه را که آزمون انجام می‌دهد و آنچه را بررسی می‌کند، توصیف کند.

[Test]
public void Add_GivenTwoPositiveNumbers_ReturnsTheirSum()

3. جداسازی آزمون ها: اطمینان حاصل کنید که هر آزمون مستقل است. از تکیه بر نتیجه یا وضعیت سایر آزمایشات خودداری کنید.

 

تست واحد کمک می کند تا اطمینان حاصل شود که کد شما به درستی کار می کند و یافتن اشکالات در مراحل اولیه توسعه را آسان تر می کند.

با خرید اشتراک می توانید تا چندین برابر مبلغ خرید اشتراک خود قالب های HTML ، سورس کدهای آماده و یا مقالات دانلود کنید
شما می توانید تنها فقط با مبلغ 3,000,000 میلیون تومان وب سایت سفارسی برای خود داشته باشید
محبوب ترین مقالات
تفاوت بین CSS و SCSS چیست؟ تفاوت بین CSS و SCSS چیست؟
category برنامه نویسی 07 اسفند 1402
تفاوت بین RDBMS و DBMS تفاوت بین RDBMS و DBMS
category برنامه نویسی 02 فروردین 1403
کاوش در معماری GPT-3 کاوش در معماری GPT-3
category هوش مصنوعی 12 اسفند 1402
کلمات کلیدی در SQL کلمات کلیدی در SQL
category برنامه نویسی 01 خرداد 1403
تفاوت بین CSS، SASS و SCSS چیست؟ تفاوت بین CSS، SASS و SCSS چیست؟
category برنامه نویسی 13 اسفند 1402
انواع Join در SQL انواع Join در SQL
category برنامه نویسی 02 فروردین 1403
ChatGPT چیست؟ ChatGPT چیست؟
category هوش مصنوعی 12 اسفند 1402
آخرین مقالات
🎨 نظریه یا تئوری طراحی چیست؟ 🎨 نظریه یا تئوری طراحی چیست؟ نظریه طراحی چارچوب فکری است که نحوه درک، خلق و ارزیابی طراحی را هدایت می‌کند. این نظریه، فلسفه، زیبایی‌شناسی، عملکرد و...
category کامپیوتر 05 مرداد 1404
سفر من به داستان‌سرایی بصری - طراحی رابط کاربری و طراحی لوگو سفر من به داستان‌سرایی بصری - طراحی رابط کاربری و طراحی لوگو چگونه سفر خود را به سمت طراحی لوگو، گرافیک و رابط کاربری/تجربه کاربری آغاز کنید. برای موفقیت در طراحی لوگو، طراحی گراف...
category کامپیوتر 02 مرداد 1404
🧠 درک هوش مصنوعی- از مبانی تا مرزها 🧠 درک هوش مصنوعی- از مبانی تا مرزها هوش مصنوعی تقریباً هر صنعتی را تغییر شکل می‌دهد، در این مقاله با یک مرور کلی آکادمیک سطح بالا شروع کنیم و آن را به بخش...
category هوش مصنوعی 27 تیر 1404