باستخدام Isolator.Swap.AllInstances TypeMock في برنامج Visual Studio تحميل اختبار؟
-
05-07-2019 - |
سؤال
ولدي الإعداد الاختبارات التالية.
[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 لايوجد سيطة سطر الأوامر لتجاوز هذا السلوك.