سؤال

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

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

المحلول

أنا اختبار الوحدة EF4 بسهولة دون السخرية. ما فعلته هو إنشاء واجهة مستودع باستخدام الرمز من http://elegantcode.com/2009/12/15/entity-framework-ef4-generic-repository-and-unit-of-work-prototype/ كأساس قمت بإنشاء InMemoryRepository<T> الفصل الذي استخدم IRepository واجهه المستخدم. ثم استبدلت IObjectSet<T> مع List<T> داخل الفصل وتغيير أساليب الاسترجاع وفقا لذلك.

وبالتالي ، إذا كنت بحاجة إلى إجراء اختبار للوحدة ، فقم بالمرور في InmemoryRepository بدلاً من DataRepository.

نصائح أخرى

ضع استعلام LINQ2entity خلف واجهة ، اختبره وحدة في عزلة ضد قاعدة بيانات حقيقية.

اكتب اختبارات لمنطق عملك مع Mocks لواجهات الاستعلام الخاصة بك. لا تدع Linq تنزف في منطق عملك!

لا تستخدم المستودع!

لف الكائنات في فئة الوكيل. ثم حقن ذلك في فصولك.

لا أعتقد أن نمط المستودع هو الإجابة الوحيدة على السؤال (فهو يتجنب المشكلة ، بالتأكيد)

أعجبتني هذه الإجابة - أعتقد أنه أكثر ملاءمة لإدخال الاختبارات إلى قاعدة كود موجودة إنشاء واجهة للكائن

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