باستخدام Isolator.Swap.AllInstances TypeMock في برنامج Visual Studio تحميل اختبار؟

StackOverflow https://stackoverflow.com/questions/1206292

سؤال

ولدي الإعداد الاختبارات التالية.

[TestClass,
Isolated]
public class TestClass
{
    public TestClass()
    {
    }

    private TestContext testContextInstance;
    public TestContext TestContext
    {
        get { return testContextInstance; }
        set { testContextInstance = value; }
    }

    [ClassInitialize,
    Isolated]
    public static void InitializeRunState(TestContext testContext)
    {
        Helpers.SetupMocks();
        //do some class init stuff
    }

    [TestInitialize]
    public void InitializeTestState()
    {
        Helpers.SetupMocks();
    }

    [TestMethod]
    public void Test()
    {
        //execute test
    }
}

في طريقة Helpers.SetupMocks() أنا إجراء مكالمة إلى Isolator.Swap.AllInstances<T>().

وهذا يعمل كبيرة طالما أنا لست تنفيذ اختبار الحمل. في أقرب وقت أنا تكوين اختبار الحمل التي من شأنها تنفيذ أسلوب Test TypeMock يبدأ رمي هذا الاستثناء:

<اقتباس فقرة>   

وTypeMock.TypeMockException: *** لا يمكن استدعاء Swap.AllInstances () أكثر من مرة على نوع.

وهناك على أية حال لتجنب هذا؟ لا بد لي من شيء تكوينه الخطأ؟

هل كانت مفيدة؟

المحلول

وتنصل أنا أعمل في Typemock

ملحوظة الأولى أن نلقي هذا الاستثناء لأن هناك حقا أي نقطة في تزوير جميع الحالات من نوع أكثر من مرة، ونحن نريد للسماح للمستخدم معرفة أنه ربما أخطأ.
أعتقد أن المشكلة هي أن عند تشغيل اختبارات الحمل mstest يدير حالات قليلة من الطبقة اختبار بشكل متواز.
في هذه الحالة يجب نقل الدعوة إلى Isolator.Swap.AllInstances () من إعداد فئة إلى طرق الاختبار.
قد تنجح إذا سوف mstest يدير يتم تشغيل الاختبارات في نفس الوقت في نفس الفئة. للأسف يبدو أن mstest لايوجد سيطة سطر الأوامر لتجاوز هذا السلوك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top