الاختلافات بين فئتين تأكيد JUnit
-
08-07-2019 - |
سؤال
يحتوي إطار عمل JUnit على 2 Assert
يبدو أن الفئات (في حزم مختلفة، بشكل واضح) والطرق في كل منها متشابهة جدًا.هل يمكن لأحد أن يشرح لماذا هذا؟
الفصول التي أقصدها هي: junit.framework.Assert
و org.junit.Assert
.
المحلول
وكانت الطريقة القديمة (من أداة JUnit 3) للاحتفال اختبار الطبقات من خلال توسيع junit.framework.TestCase
. أن junit.framework.Assert
الموروثة نفسها والطبقة الاختبار اكتسبت القدرة على استدعاء الأساليب ASSERT بهذه الطريقة.
ومنذ الإصدار 4 من أداة JUnit، يستخدم إطار Annotations
لوضع علامات الاختبارات. لذلك لم تعد هناك حاجة لتمديد TestCase
. ولكن هذا يعني، وأساليب ASSERT غير متوفرة. ولكن يمكنك جعل استيراد ثابت من الطبقة Assert
جديدة. هذا هو السبب في كل الطرق تأكيد في فئة جديدة هي أساليب ثابتة. حتى تتمكن من استيراده بهذه الطريقة:
import static org.junit.Assert.*;
وبعد هذا الاستيراد ثابت، يمكنك استخدام هذه الأساليب من دون بادئة.
وفي إعادة تصميم انتقلوا أيضا إلى حزمة org.junit
الجديد الذي يتبع الاتفاقيات الطبيعية أفضل لحزمة التسمية.
نصائح أخرى
وأداة JUnit 3.X: junit.framework.Assert
وأداة JUnit 4.X: org.junit.Assert
ويفضل أحدث واحد، وخاصة عند تشغيل JDK5 وأعلى مع دعم الشرح.
وهناك في الواقع تغيير وظيفي: سوف org.junit.Assert
يشكو إذا كنت تستخدم assertEquals()
يومين حجة مع float
أو double
، في حين junit.framework.Assert
سوف autobox ذلك بصمت
وأعتقد أنهم إعادة بيع ديون من junit.framework
إلى org.junit
والحفاظ junit.framework.Assert
من أجل التوافق الوراء.
لقد أجريت مقارنة تقريبية لشفرة المصدر ولم تكن هناك تغييرات جدية.تمت إضافة الكثير من التعليقات org.junit.Assert
وتمت بعض عمليات إعادة البناء.التغيير الوحيد هو المقارنة مع Arrays
.هناك بعض عمليات تنظيف التعليمات البرمجية، ولكن هناك (إيمهو) لا يوجد تغيير وظيفي.
في الروبوت استوديو (وذلك في IntelliJ للغاية)، يمكنك استبعاد عالميا junit.framework
من اقتراح لصناعة السيارات في الاستيراد.
ويمكنك ضبط النطاق بين IDE
أو Project
. إذا لم يكن لديك المشاريع التي تستخدم أداة JUnit 3 يمكنك البقاء بأمان مع نطاق IDE.
والموقف إعداد:
<اقتباس فقرة>تفضيلات -> محرر -> عام -> استيراد السيارات
اقتباس فقرة>