CodeShot
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.

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