سؤال

لدي حالة الاختبار التالية في الكسوف، باستخدام Junit 4 التي ترفض المرور. ماذا يمكن أن يكون الخطأ؟

@Test(expected = IllegalArgumentException.class)
public void testIAE() {
    throw new IllegalArgumentException();
}

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

لقد اختبرت أيضا باستثناءات مخصصة كما هو متوقع دون حظ.

لقطة شاشة: Screenshot

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

المحلول

المشكلة هي أن الإعلان الخاص بك يمتد إلى TESTCASE. نظرا لأنه يمتد TESTCASE، فإن عداء Junit يعالجها كاختبار Junit 3.8، ويتم تشغيل الاختبار لأنه يبدأ باختبار Word، واختبئ حقيقة أن التشريح الأتري في الواقع لا يتم استخدامه على الإطلاق.

لإصلاح هذا، قم بإزالة "تمديد TESTCASE" من تعريف الفصل.

نصائح أخرى

بدلا من إزالة تمديد TESTCASE، يمكنك إضافة هذا لتشغيل علبة الاختبار الخاصة بك مع Junit4 الذي يدعم التعليق التوضيحي.

runwith (junit4.class)

فقط ركض هذا في Intellij باستخدام Junit 4.4:

   @Test(expected = IllegalArgumentException.class)
   public void testExpected()
   {
       throw new IllegalArgumentException();
   }

يمر تماما.

إعادة بناء مشروعك بالكامل وحاول مرة أخرى. هناك شيء آخر تقوم به خطأ. Junit 4.4 يعمل كما هو معلن.

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