سؤال

إنني أتطلع إلى إضافة مجموعة اختبار إلى تطبيقي، ولكن لا يمكنني الانتقال إلى أطر عمل الاختبار الأحدث لـ .NET 3.5.

هل لدى أي شخص اقتراح حول أطر الاختبار الجيدة لاستخدامها؟

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

المحلول

نحن نستخدم مبيونيت و رينو موكس وقد أثبتوا أنهم يعملون معًا بشكل جيد جدًا.عند القيام بـ TDD، ستحتاج بالتأكيد إلى إجراء شكل من أشكال حقن التبعية، بينما يمكن القيام بذلك يدويًا، إلا أنه يستحق النظر إلى حاوية IoC مثل قلعة وندسور.

من الجدير النظر إلى لقطات شاشة John Paul Bodhood لتبدأ. مدونة جي بي بي

نصائح أخرى

NUnit و Rhino يتناسبان بشكل جيد و حاوية السخرية التلقائية قد تكون ذات فائدة.

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

تحقق من تسجيل الشاشة الخاص بـ Rob Conery على BDD باستخدام MSpec.مبهر جدا http://blog.wekeroad.com/mvc-storefront/kona-3/

يحرر:أنا الآن أستخدم هذا النهج: http://10printhello.com/the-one-bdd-framework-to-rule-them/

بالنسبة لمكتبة الكائنات الوهمية، فقد وجدت ملف BSD المرخص وحيد القرن. يسخر أن تكون ممتعة إلى حد ما.

لقد حققت نجاحًا كبيرًا باستخدام وحدة أيضًا.

لقد استخدمت أيضا نموك عندما نشأت الحاجة إلى أشياء وهمية.كمكافأة إضافية، يُطلق على مصنع إنشاء الكائنات الوهمية اسم Mockery.

لتسهيل تشغيل اختبارات الوحدة، استخدمت TestDriven.NET لتشغيل اختبارات الوحدة كما قمت بالترميز.أيضا، لقد استخدمت التحكم في السرعة .NET لمشاهدة SVN والتحقق من أن كل التزام جديد يبني ويجتاز جميع اختبارات الوحدة.

ربما يكون هذا ملخصًا لما قيل بالفعل، لكن بالنسبة لـ TDD، فأنا شخصيًا أستخدم Rhino Mocks وMBUnit.Rhino Mocks هو إطار عمل ساخر مجاني ومفتوح المصدر.تتمثل ميزة Rhino Mocks في أننا لا نحتاج إلى استخدام سلاسل سحرية في تحديد توقعاتك كما تفعل في NMock.

أنا أحب MBUnit لأن MbUnit لديه مفهوم RowTests الذي يسمح لك بتغيير مدخلاتك حسب طريقة الاختبار الخاصة بك.MBUnit متاح أيضًا مجانًا.

تريد أيضًا التأكد من أن كل ما تختاره لإطار عمل اختبار الوحدة الخاص بك مدعوم بواسطة CI (خادم التكامل المستمر).يتم دعم Nunit بشكل افتراضي في Cruise Control.NET ويجب عليك القيام ببعض العمل الإضافي لجعل MBUnit يعمل في ccnet.

من وجهة نظر IDE يجب أن يكون لديك TestDriven.NET.يتيح لك TestDriven.NET النقر بزر الماوس الأيمن وإجراء الاختبارات في IDE وهو يدعم MBUnit وNunit وغيرهما.

NBehave هي مكتبة BDD التي استخدمتها.لم أستخدم أي برامج أخرى لذلك لم أتمكن من مقارنتها معك، ولكن NBehave مدعوم من Gallio من فريق MBUnit، مما يعني أنه يمكنك إجراء اختبارات BDD الخاصة بك تمامًا كما تفعل مع اختبارات الوحدة الخاصة بك مع TestDriven.NET.

وأود أيضًا أن أوصي بشدة باستخدام Resharper.ستجد زيادة كبيرة في إنتاجيتك باستخدام أداة إعادة الهيكلة والتوجيه هذه.سيساعدك ذلك في تغيير الكود الخاص بك أثناء تطوير اختباراتك.

أتمنى أن يساعدك هذا

سأضطر إلى الصراخ من أجل موك.إنه إطار ساخر من الضوء النظيف الذي يساعد في إرشادك إلى حفرة النجاح.

أدوات الاختبار المضمنة في TFS لا بأس بها، وسوف تنجز المهمة ولكن غالبًا ما يكون العمل بها مرهقًا بعض الشيء.تعتبر التقارير التي تم إنشاؤها وتغطية التعليمات البرمجية وبعض الأجزاء الأخرى سيئة بشكل خاص، فهي تجعلك أصلعًا في سن 22 بدلاً من 50.

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

بغض النظر عما تفعله، جرب القليل منها واكتشف أي منها هو الأكثر طبيعية، إذا كان لديك الوقت.حظا سعيدا والترميز سعيد.

استخدام nUnit مع TFS ليس بالأمر الصعب جدًا.يوجد أيضًا مشروع على codeplex لتنفيذ هذا: NUnit لبناء الفريق والتي حتى "تنشر" النتائج إلى المستودع.

لم أجربه - ولكني أنصح العملاء الذين لديهم استثمار كبير (أو الذين لديهم تفضيل قوي لها على أداة MSTest) في nUnit والذين يرغبون في تنفيذ TFS بمواصلة استخدام nUnit بدلاً من محاولة تحويل كافة حساباتهم الاختبارات الموجودة.

وحدة متاح في http://www.nunit.orgأود أن أقترح ذلك حتى عند العمل على مكدس MS - يحدث دعم الأطر غير التابعة لـ MS في معاينات MVC التي تظهر حركة محددة في الاتجاه الصحيح للسماح لنا جميعًا بتخصيص مجموعاتنا لتناسبها.

NUnit هي دائمًا المفضلة لدي.ومع ذلك، إذا كنت تستخدم TFS كعنصر تحكم بالمصدر، أقترح عليك الالتزام بـ Microsoft Stack.

أوصي بما يلي:

TestDriven.NET - إضافة اختبار الوحدة لـ VS المتكامل تمامًا مع جميع أطر عمل اختبار الوحدات الرئيسية بما في ذلك NUnit وMbUnit وما إلى ذلك...

عازل تايموك- إطار ساخر ل . صافي اختبار الوحدة

وحدة - إطار اختبار وحدة مفتوح المصدر موجود في C#.

بالنسبة لمشروعي، استخدمت NUnit وTestDriven.NET بنجاح كبير.يمكنك إما إنشاء مكتبة منفصلة لاستضافة رمز الاختبار الخاص بك فقط أو يمكنك وضعها في الملف القابل للتنفيذ أو المكتبة.كل هذا يتوقف على ما إذا كنت تريد أن يتشابك رمز الإنتاج الخاص بك مع رمز الاختبار الخاص بك.

بالنسبة لحقن التبعية، أستخدم NInject في مشروعي الحالي وعمله عظيم.إذا كنت تستخدم حقن المُنشئ، فلن تحتاج إلى فوضى التعليمات البرمجية الخاصة بك باستخدام السمة [Inject].

لم أستخدم مكتبة وهمية لمشروع .NET 2.0 الخاص بي ولكن لمشروع .NET 3.5 آخر سأستخدمه موك

لاحظ أن كل هذا يعمل مع .NET 2.0 والإصدارات الأحدث.(باستثناء موك)

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