سؤال

لدينا الكثير من التكامل اختبارات مكتوبة باستخدام JUnit 3, على الرغم نحن الآن ندير لهم 4.4.عدد قليل من هذه بحاجة إلى تدمر الطريقة التي يعمل بعد كل الاختبارات في الدرجة كاملة (لتحرير بعض الموارد المشتركة).

أرى أن هذا يمكن القيام به في junit 4 مع @AfterClass (org.junit).ولكن خلط ذلك في القائمة junit 3 الاختبارات التي تمتد TestCase (junit.إطار.*) لا يبدو أن العمل.[راجع للشغل هناك أداة الترحيل بعد ؟ السؤال 264680 وأشارت لم يكن هناك أحد قبل عام.]

رأيت ذكر باستخدام junit.امتداد.TestSetup لهذا النوع من الشيء.موجزة اختبار هذا لا يبدو العمل.أي الأمثلة ؟

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

المحلول

وجدت الإجابة على سؤالي :) كنت قد حاولت هذا لفترة وجيزة قبل نشر سؤالي ولكن لم يكن العمل بالنسبة لي.ولكن أنا أدرك الآن أنه بسبب اختبار لدينا إطار الاحتجاج junit بشكل مختلف عن الافتراضي ، إذا لم يكن داعيا "جناح" الأسلوب هو الحل التالي.في الكسوف إذا كنت تستخدم واحدة junit عداء مباشرة تنفيذ اختبار واحد/TestCase, أنه يعمل بشكل جيد.

طريقة لفعل هذا الإعداد/teardown مرة واحدة في الصف الواحد في junit 3 هو استخدام TestSuite.هنا مثال على junit.org:

هل هناك طريقة لجعل الإعداد() تشغيل مرة واحدة فقط ؟

public static Test suite() {
    return new TestSetup(new TestSuite(YourTestClass.class)) {

        protected void setUp() throws Exception {
            System.out.println(" Global setUp ");
        }
        protected void tearDown() throws Exception {
            System.out.println(" Global tearDown ");
        }
    };
}

نصائح أخرى

في JUnit 4 ، اختبار فئة لا تحتاج إلى تمديد TestCase.بدلا من ذلك يجب التأكد من أن اسم فئة اختبار المباريات *Test و كل طريقة الاختبار هو مشروح مع @Test.هل حاولت إجراء هذه التغييرات, ثم إضافة @AfterClass الشرح ذات الصلة الأسلوب ؟

هناك شروح استبدال معظم/جميع الوظائف يمكنك حاليا استخدام من TestCase.

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