MSTest1 دقیقه مطالعه
MSTest چیست؟
فریمورک تست رسمی مایکروسافت، با ادغام قوی در Visual Studio و Attributeهای [TestClass]/[TestMethod].
چرا مهم است؟
MSTest بهصورت پیشفرض بهترین یکپارچگی را با Visual Studio و ابزارهای مایکروسافت (Live Unit Testing، Test Explorer) دارد و در بسیاری تیمهای سازمانی داتنت انتخاب پیشفرض است.
تعریف
MSTest فریمورک رسمی تست مایکروسافت است؛ کلاس تست با [TestClass] و متد تست با [TestMethod] مشخص میشود.
مثال
[TestClass]
public class DiscountCalculatorTests
{
[DataTestMethod]
[DataRow(100, 10)]
[DataRow(50, 5)]
public void Calculate_ReturnsTenPercentOff(decimal price, decimal expected)
{
var calculator = new DiscountCalculator();
var result = calculator.Calculate(price);
Assert.AreEqual(expected, result);
}
}
Setup/Teardown
[TestInitialize]
public void Setup() { /* قبل از هر تست */ }
[TestCleanup]
public void Cleanup() { /* بعد از هر تست */ }
نکات مهم
- نسخه جدید MSTest (v3) از
Assert.Thatهم پشتیبانی میکند و بهروزرسانی مداوم دارد. - برای اجرای موازی تستها باید صریحاً
[assembly: Parallelize]تنظیم شود.
اشتباه رایج
❌ فرض اینکه ترتیب اجرای متدهای تست تضمینشده است — MSTest (مثل بقیه فریمورکها) ترتیب اجرا را تضمین نمیکند؛ هر تست باید مستقل باشد.
منبع و مطالعه بیشتر
خلاصه
MSTest فریمورک رسمی مایکروسافت با [TestClass]/[TestMethod] است و بهترین یکپارچگی را با Visual Studio دارد. هیچ فریمورک تستی ترتیب اجرا را تضمین نمیکند، پس هر تست باید مستقل نوشته شود. مرجع کامل: Microsoft Learn.
این مطلب مفید بود؟
☆نشان کردن