رمز الأنظمة المدمجة مع اختبارات الوحدة الجيدة؟

StackOverflow https://stackoverflow.com/questions/2518660

  •  22-09-2019
  •  | 
  •  

سؤال

أنا أبحث في أساليب اختبار وحدة اختبار الوحدة المكتوبة في C.

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

أي منتجات رائعة مفتوحة المصدر لها UTS جيدة؟

تعديل:

الناس ، شكرا على الإجابات -أنا هل حقا نقدرهم ، لكن هذا لا مباشرة اجب على سؤالي:

هل تعرف أي رمز مفتوح المصدر يستخدم اختبارات وحدة C؟ أتطلع إلى معرفة كيف يتم ذلك ، حتى أتمكن من تعلم شيء من الكود ...

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

المحلول

تعديل: هناك قائمة بالمشروع باستخدام Check كإطار اختبار الوحدة على تحقق من صفحة المشروع. بعض الروابط عفا عليها الزمن ، ولكن يمكنك تصفح مصدر اختبار الوحدة الصباغ و SCEW ؛ على المرء تنزيل مصدر للآخرين.


Minunit لا يوجد لديه تبعيات على الإطلاق ويمكن استخدامها كقاعدة لإنشاء إطارك الخاص.

بقدر ما يتعلق الأمر بالطريقة ، أبدأ من أدنى وظائف المستوى (الأوراق). في كثير من الأحيان ، عندما أقوم باختبار وظيفة المستوى الأعلى ، فإنها تستدعي وظائف المستوى الأدنى. هذه ليست مشكلة حيث تم بالفعل اختبار الوظائف الأدنى.

أقوم أيضًا بتعديل الكود كـ "كائن" ، أو جدول الكائنات. تسمح وظائف الكعب بالاختبار في عزل الأجهزة أو المكونات الأخرى.

تخلصت من الثابت مع تحديد إزالتها ، أو أقوم بتضمين الملف المصدر الذي يحتوي على الوظائف المراد اختبارها في ملف مصدر اختبارات الوحدة.

#if defined(UNIT_TESTING)
#define STATIC
#else
#define STATIC static
#endif

لا علوم الصواريخ هنا ولكن هذا يفعل الحيلة.

شيء آخر ، اختبار السلوك ، وليس التنفيذ حتى لا تنكسر اختبارات الوحدة عندما يتغير التنفيذ.

نصائح أخرى

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

تجربتي في تطوير برنامج مضمن لـ Linux تستخدم C ++ وليس عاديًا C. استخدمنا CPPUNIT لاختبارات الوحدة.

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