Testng ، التعليق التوضيحي "Beforetestmethod" والتجاوز
سؤال
لاختباراتي ، أستخدم فصلًا أساسيًا 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 (الوالد ثم الطفل).
نقطتان أخريان:
- سأقوم بإعداد الوالدين
final
من أجل منع التجاوز العرضي. - سأستخدم
@BeforeMethod
التعليقات التوضيحية. وهي متوفرة منذ اختبار 5.0. بالطبع ، للإصدارات القديمة التي أجبرت على استخدامها@Configuration
.
لا تنتمي إلى StackOverflow