سؤال

هو مثيل جديد (أو مختلف) لـ TestCase هل يتم استخدام الكائن لتشغيل كل طريقة اختبار في حالة اختبار JUnit؟أو يتم إعادة استخدام مثيل واحد لجميع الاختبارات؟

public class MyTest extends TestCase {
  public void testSomething() { ... }
  public void testSomethingElse() { ... }
}

أثناء تشغيل هذا الاختبار، كم عدد حالات MyTest يتم إنشاء الطبقة؟

إذا أمكن، قم بتوفير رابط لمستند أو رمز مصدر حيث يمكنني التحقق من السلوك.

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

المحلول

لم أتمكن من العثور على إجابة واضحة في مستندات JUnit حول سؤالك، ولكن القصد، كما كتب أنجانب، هو أن كل اختبار مستقل عن الاختبارات الأخرى، لذلك يمكن إنشاء مثيل TestCase جديد لتشغيل كل اختبار.

إذا كان لديك إعداد اختبار باهظ الثمن ("تركيبات") الذي تريد مشاركته عبر جميع حالات الاختبار في فئة الاختبار، يمكنك استخدام الملف @قبل الفصل تعليق توضيحي على طريقة ثابتة لتحقيق هذه النتيجة: http://junit.sourceforge.net/javadoc_40/org/junit/BeforeClass.html.ومع ذلك، لاحظ أنه لا يزال من الممكن إنشاء مثيل جديد لكل اختبار، لكن ذلك لن يؤثر على البيانات الثابتة التي قامت طريقة @BeforeTest بتهيئةها.

نصائح أخرى

نعم، يتم إنشاء نسخة منفصلة.

وأثناء تشغيل هذا الاختبار، 2 حالات MyTest يحصل بإنشائه.

إذا كنت ترغب في سلوك مختلف، خيار واحد هو استخدام أداة مشابهة دعا TestNG ( http://testng.org / وثيقة / ).

وهناك حالة واحدة لكل اختبار تشغيل. محاولة

public class MyTest extends TestCase {
  public MyTest() { System.out.println("MyTest Constructor");
  public void setUp() { System.out.println("MyTest setUp");
  public void tearDown() { System.out.println("MyTest tearDown");
  public void testSomething() { System.out.println("MyTest testSomething");
  public void testSomethingElse() { System.out.println("MyTest testSomethingElse");
}

ووالمصدرية (بما في ذلك إلى إصدارات أحدث - وبلدي على سبيل المثال هو أداة JUnit 3) على HTTP: // شبكة الاتصالات العالمية. junit.org

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

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

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