Autofixture: جعل AutoFixture ثابتًا

تم إنشاؤها على ٢٨ أغسطس ٢٠١٣  ·  4تعليقات  ·  مصدر: AutoFixture/AutoFixture

[هذا طلب تحسين]

سيكون من الرائع لو استطعنا الكتابة

تركيبات() ؛

بدلاً من إنشاء مثيل Fixture
var fixture = تركيبات جديدة () ؛
المباراة() ؛

في عرضك التقديمي في NDC للتركيب التلقائي ، قلت إنك تكره الإعلان عن متغير في مُنشئ فئة اختبار من أجل استخدامه في كل طريقة اختبار. قلت أنه من الواضح أن ترى كل شيء داخل طريقة واحدة. لقد اتبعت فكرتك لأنني أعتقد أنها فكرة جيدة ، لكن المشكلة هي أنني أقوم حاليًا بإنشاء مثيل جديد في كل طريقة ولست معجبًا حقًا ، أفضل الاتصال بـ Fixture.() ؛

ما رأيك ؟

نعم أعلم ، يمكنني استخدام الطريقة التعريفية ، لكنني لست معجبًا كبيرًا ، لأنه سيتعين علي إنشاء فصل دراسي جديد يطبق ICustomize. لذلك ، لن أرى كل شيء داخل طريقة اختبار واحدة. سأضطر إلى الانتقال إلى الفصل لمعرفة كيفية إعداد البيانات. وأكثر من ذلك ، فإن معظم طرقي لها طريقة مختلفة لإعداد البيانات ، لذلك لا أريد إنشاء فئة واحدة تقوم بتنفيذ ICustomize لكل طريقة اختباري.

ال 4 كومينتر

بصرف النظر عن حفظ 6 ضغطات على المفاتيح ، كيف يتم ذلك

ج #
var foo = Fixture.Create() ؛

provide any advantage that

``` c#
var foo = new Fixture().Create<Foo>();

لا؟

يمكن معالجة المشكلة المتعلقة بضربات المفاتيح الإضافية عن طريق إنشاء مقتطف رمز Visual Studio.

شكرًا لك على إجابتك Mark ، في الواقع ، سيسمح لي مقتطف الشفرة بالكتابة بشكل أسرع ، ولكن لسهولة القراءة ، أفضل القراءة ؛

تركيبات() ؛
تركيبات() ؛

من

تركيبات جديدة ()() ؛
تركيبات جديدة ()() ؛

هذا تحسين بسيط ، لكنه سيجعل قلبي ينبض أكثر عند استخدام المزج التلقائي.

عادل بما يكفي. ومع ذلك ، فإن المقروئية شيء ذاتي.

في تجربتي ، في معظم قواعد التعليمات البرمجية ، يتعين على الأشخاص تخصيص مثيل Fixture بطريقة أو بأخرى ، من أجل استيعاب جميع المراوغات الصغيرة لقاعدة الرموز الخاصة بهم ، أو مكتبات الأدوات التي يستخدمونها. على سبيل المثال ، لا يمكنك استخدام مثيل Vanilla Fixture عادي لاختبار وحدات تحكم ASP.NET MVC ، لأن (IIRC) توجد أجزاء معينة من تلك الفئات الأساسية التي لها مراجع دائرية.

وبالتالي ، بافتراض أن الطريقة الافتراضية Fixture.Create<T>() ستعمل مع مثيل Vanilla Fixture عادي ، فأنا أعتبرها ذات فائدة محدودة.

هذا ليس الاتجاه الذي أرغب في اتخاذ AutoFixture فيه ، لذلك سأغلق هذا الاقتراح.

ومع ذلك ، لا شيء يمنعك من إنشاء مثل هذا الغلاف بنفسك ؛ سيكون من التافه تنفيذها.

أحب أيضًا فكرة الاحتفاظ بـ Fixture () الجديد ولكن لدي أيضًا اختصار ثابت إضافي (لمثيل ثابت خاص) في المكتبة نفسها. من السهل كتابة غلاف أو طريقة تمديد ، ولكن من الصعب بعض الشيء إدارة (مثل مساحة الاسم) والانتقال من المشاريع إلى المشاريع.
شكرا،

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

gtbuchanan picture gtbuchanan  ·  3تعليقات

ecampidoglio picture ecampidoglio  ·  7تعليقات

JoshKeegan picture JoshKeegan  ·  6تعليقات

joelleortiz picture joelleortiz  ·  4تعليقات

DeafLight picture DeafLight  ·  5تعليقات