سؤال

أحتاج إلى اختيار إطار عمل وهمية لمشروع جديد.

ما هي إيجابيات وسلبيات لتلك الأطر؟ أي جدول مقارنة؟

أعلم أن JustMock Is I Beta Stage ولكنها تبدو جيدة جدًا الآن (تشبه إلى حد كبير Typemock)

تحرير: أنا ماذا عن السيدة مول؟

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

المحلول

قبل أن يكون هناك uppock تم طرح هذا السؤال و يمكن العثور على الإجابات هنا. هناك جيد جدا مقارنة الإطار السخري - ليس لديها justmock بعد ولكن يمكنك رؤية بناء الجملة وقدرات كل إطار .NET السخري.

رينوموكسمو) كلاهما مفتوح المصدر مجانًا لاستخدام المشاريع التي يمكن أن تنشئ كائنات مزيفة عن طريق وراثة النوع - مما يعني أنه لا يمكن أن يتمكنوا من زيادة الأساليب الثابتة والهياكل والفئات المختومة.

عزل Typemock يستخدم Profiler CLR لاعتراض .NET المكالمات وتغييرها أثناء وقت التشغيل ويمكن أن تزييف أي شيء تقريبًا. يمكن لـ Typemock أيضًا مزيفًا كائنات لا يمكنك "الوصول إليها" من الاختبار لأنها تم إنشاء مثيل لها داخل رمز الإنتاج. يطلق عليه البعض اسم "السحر الأسود" ، لكن البعض الآخر يجد القدرة على تزوير أي شيء تقريبًا - بما في ذلك مكتبات الطرف الثالث والرمز القديم - أمر لا بد منه.

justmock هو لاعب جديد والآن الآن في Beta - يحتوي على بعض من عزل Typemock ويمكن تشغيله بدون واجهة برمجة تطبيقات Profiler - في هذا الوضع تمامًا مثل Rhinomocks. لم يتم بعد اكتشاف مقدار قدرات عزل Typemock التي تتمتع بها بالفعل. في الوقت الحالي ، يبدو أنها بداية جيدة في الاتجاه الصحيح ، لكن لا يزال أمامها مسافة قبل أن تكون خيارًا صالحًا.

نصائح أخرى

لقد تحولت مؤخرًا من رينوموكس ل مو.

كلاهما لديه قدرات مماثلة ولكن مو لديه الكثير API أنظف

إخلاء المسئولية - أعمل في Telerik

فقط بضع نقاط حول justmock. تشبه واجهة برمجة التطبيقات الخاصة بها واجهة برمجة تطبيقات MOQ أكثر من Rhinomocks ، لذلك إذا كنت على دراية بـ MOQ ، فلن تواجه مشاكل في تعلم Justmock. ما حاولنا القيام به بشكل أفضل في JustMock هو أن يكون لديك قصة أفضل عند السخرية من المكالمات المتسلسلة على سبيل المثال. بالإضافة إلى ذلك ، كما ذكر شخص ما بالفعل ، يتيح JustMock السخرية من الفئات والأساليب / الخصائص الثابتة ، والفئات المختومة ، والطرق والخصائص غير الذروة ، وما إلى ذلك باستخدام نفس بناء الجملة الشبيه بـ MOQ. أيضًا بفضل هذا في JustMock ، من الممكن القيام بالسخر الجزئي.

راجع للشغل ، فإن "السحر الأسود" الذي ذكره Dror ممكن أيضًا عند استخدام JustMock إذا الرجوع مباشرة إلى telerik.codeweaver.hook Assembly ولكن للأسف لم يتم توثيقه في الوقت الحالي. إذا أراد شخص ما القيام بذلك ، فيمكنه فتح تذكرة دعم وسنكون سعداء للمساعدة.

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

أيضا الخروج Microsoft Moles, ، إطار عزل لـ .NET الذي يسمح باستبدال أي طريقة .NET بمندوب مخصص.

لدى Moles نسخة يمكن استخدامها للمشاريع التجارية ويتم دعمها في Visual Studio 2008 و 2010.

انظر أيضا: https://stackoverflow.com/questions/37359/what-c-mocking-framework-to-use/2608634#2608634

أنا حاليًا اختبار الوحدة في MOQ ، ويجب أن أقول إنه يعمل بشكل جيد! - إعادة صياغة: إنه يعمل بشكل رائع! لم أستخدم أي من أطر عمل السخرية الأخرى التي ذكرتها ، لذا لا يمكنني تقديم مقارنة لك. لكن يمكنني أن أقول إنني سعيد لأنني اخترت MOQ كأول إطار من السخرية. تعبيرات LAMDA لطيفة حقًا وهي أيضًا خفيفة الوزن وودية للقارئ (بناء جملة السجل/إعادة التشغيل في معظم أطر عمل السخرية الأخرى لا تقوم حقًا بإمكانية قراءة أي شيء جيد)

إلى جانب ذلك (وهذا أمر خارج عن الموضوع) سأستخدم Ninject في المستقبل القريب كحاوية IOC ، وكلا الإطارين يسيران جنبًا إلى جنب. يحتوي Ninject أيضًا على LAMDA's وحتى أنه يوفر دعم حاوية التخلص التلقائي لـ MOQ (باستخدام امتداد). لذلك إذا كنت تخطط أيضًا لاستخدام حاوية IOC ، فيمكنك التحقق من هذه المجموعة الرائعة:

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

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

لا أعرف Justmock ، لذا لا أستطيع أن أخبرك كيف يعمل.

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

آمل أن يعطيك الآخرون المزيد من التفاصيل.

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