بیایید یک مثال اساسی از نحوه نوشتن یک تست واحد در سی شارپ با استفاده از چارچوب 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. جداسازی آزمون ها: اطمینان حاصل کنید که هر آزمون مستقل است. از تکیه بر نتیجه یا وضعیت سایر آزمایشات خودداری کنید.
تست واحد کمک می کند تا اطمینان حاصل شود که کد شما به درستی کار می کند و یافتن اشکالات در مراحل اولیه توسعه را آسان تر می کند.