سؤال

أنا عندي 2 أسئلة حول تنظيم وحدة الاختبارات.

  1. هل يجب أن أضع اختبار على نفس حزمة اختبار الصف ، أو يمكنني تنظيم الاختبارات في مختلف حزم ؟

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

  2. ماذا عن السخرية و كعب الطبقات ؟ هل يجب الفصل بينهما من الحزم التي تحتوي فقط الاختبارات ، أو وضعها معا ؟

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

المحلول

الطريقة نقوم JUnit حالات الاختبار هو وضعها في نفس الحزمة في الدليل الجذر.بما أننا نستخدم مخضرم, نحن فقط استخدام معيار مواقع صنع هيكل مشابهة لما يلي.

src/main/java/com/foo/Bar.java
src/test/java/com/foo/BarTest.java

من الواضح أن هناك أكثر إلى الهيكل ، ولكن هذا يتيح لنا بناء الاختبارات بشكل منفصل من رئيسي رمز, ولكن لا يزال الوصول إلى المحمية دروس وما شابه ذلك.فيما يتعلق أنواع مختلفة من الاختبارات ، هذا هو ذاتي جدا.عندما بدأنا اختبار الجهد (التي للأسف بدأت بعد التنمية) ، حاولت أن تبقى الأمور معزولين.للأسف, وسرعان ما أصبح كابوسا عندما وصلنا إلى 500+ اختبار نقطة.لقد حاولت أن تفعل المزيد من التعزيز.هذا أدى إلى انخفاض كميات من رمز للحفاظ على.كما قلت, على الرغم من أنه شخصي جدا.

بقدر الاختبار رمز فقط ، نبقيه في فصل com.foo.test الحزمة التي تتواجد فقط في src/test/java شجرة.

نصائح أخرى

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

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

في الغالب لا تقلق كثيرا عن النظرية ، ولكن إعادة صياغة الاختبارات اللازمة للحفاظ على الازدواجية إلى أدنى حد ممكن.

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

الحفاظ على نفس حزمة يتيح لك استخدام حزمة الخاص وضوح التعليمات البرمجية التي تهدف إلى أن يكون الوصول إليها عن طريق الاختبار فقط.

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

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

TestNG هو ودا بكثير إلى هذا النموذج من JUnit ، على الرغم من.

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