Unit Testing2 دقیقه مطالعه
تست واحد (Unit Testing) چیست؟
تست واحد رفتار یک متد یا کلاس را بهصورت مجزا از وابستگیهای بیرونی (دیتابیس، شبکه) بررسی میکند.
چرا مهم است؟
تقریباً همهٔ آگهیهای Mid/Senior .NET آشنایی با xUnit/NUnit/Moq را میخواهند؛ کد بدون تست، رفکتور کردنش پرریسک است.
ساختار AAA
[Fact]
public void Add_TwoNumbers_ReturnsSum()
{
// Arrange
var calculator = new Calculator();
// Act
var result = calculator.Add(2, 3);
// Assert
Assert.Equal(5, result);
}
Mock کردن وابستگیها با Moq
var repoMock = new Mock<IOrderRepository>();
repoMock.Setup(r => r.GetById(1)).Returns(new Order { Id = 1 });
var service = new OrderService(repoMock.Object);
var order = service.GetOrder(1);
Assert.Equal(1, order.Id);
فریمورکهای رایج در .NET
- xUnit: پرکاربردترین فریمورک در پروژههای جدید .NET.
- NUnit: قدیمیتر، همچنان پرکاربرد در پروژههای قدیمیتر.
- MSTest: فریمورک رسمی مایکروسافت.
اشتباه رایج
❌ تست نوشتن برای جزئیات پیادهسازی داخلی (متدهای Private) بهجای رفتار بیرونی. ✅ تست باید روی «ورودی → خروجی/رفتار قابلمشاهده» تمرکز کند تا با تغییر پیادهسازی داخلی نشکند.
خلاصه
تست واحد رفتار یک متد را مجزا از وابستگیها بررسی میکند؛ الگوی AAA (Arrange-Act-Assert) ساختار استاندارد است؛ Moq برای شبیهسازی وابستگیها استفاده میشود.
حالا امتحان کن
🧩آزمون مبانی تست واحد4 سؤال · نمره قبولی 60٪این مطلب مفید بود؟
☆نشان کردن