Testng ، التعليق التوضيحي "Beforetestmethod" والتجاوز

StackOverflow https://stackoverflow.com/questions/1559343

  •  21-09-2019
  •  | 
  •  

سؤال

لاختباراتي ، أستخدم فصلًا أساسيًا MyTestBase تحديد طريقة setup() هذا يفعل بعض الاستعدادات الأساسية:

public class MyTestBase {
    @Configuration( beforeTestMethod=true )
    protected void setup() {
        // do base preparations
    }
}

الآن لدي بعض فصول الاختبار الأكثر تحديدًا التي يجب أن تقوم بإعداد الاستعدادات الخاصة بهم. هناك طرق مختلفة كيفية تنفيذ هذا.

يمكن أن أستخدم @Override:

public class MySpecialTestBase extends MyTestBase {
    @Override
    protected void setup() {
        super.setup();
        // do additional preparations
    }
}

... أو يمكنني استخدام طريقة إعداد منفصلة:

public class MySpecialTestBase extends MyTestBase {
    @Configuration( beforeTestMethod=true )
    protected void setupSpecial() {
        // do additional preparations
    }
}

هل هناك طريقة مفضلة لتنفيذ هذا؟

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

المحلول

أفضل استخدام @Configuration حاشية. ملاحظة. @Override و super أكثر هشاشة. يمكنك أن تنسى الاتصال super.setup(), أو تسميها في مكان خاطئ. وفي الوقت نفسه ، باستخدام طريقة منفصلة مع @Configuration يتيح لك اختيار تسمية أكثر ملاءمة لطريقة إعداد الطفل إذا لزم الأمر ، وستحصل على أمر الإعداد مضمون بواسطة TestNg (الوالد ثم الطفل).

نقطتان أخريان:

  1. سأقوم بإعداد الوالدين final من أجل منع التجاوز العرضي.
  2. سأستخدم @BeforeMethod التعليقات التوضيحية. وهي متوفرة منذ اختبار 5.0. بالطبع ، للإصدارات القديمة التي أجبرت على استخدامها @Configuration.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top