Birim testlerim için temel olarak kullandığım soyut bir temel sınıfım var (TestNG 5.10). Bu sınıfta, testlerim için tüm ortamı başlatırım, veritabanı eşlemeleri kurarım, vb. Bu soyut sınıf, @BeforeClass
başlatmayı yapan bir açıklama içeren bir yönteme sahiptir .
Daha sonra, bu sınıfı @Test
yöntemlere ve yöntemlere sahip olduğum belirli sınıflarla genişletiyorum @BeforeClass
. Bu yöntemler, ortamın sınıfa özgü başlatılmasını sağlar (örneğin, veritabanına bazı kayıtlar koyar).
@BeforeClass
Açıklamalı yöntemlerin belirli bir sırasını nasıl uygulayabilirim ? Soyut temel sınıftan olanların, genişleyen sınıfınkilerden önce çalıştırılmasına ihtiyacım var.
Misal:
abstract class A {
@BeforeClass
doInitialization() {...}
}
class B extends A {
@BeforeClass
doSpecificInitialization() {...}
@Test
doTests() {...}
}
Beklenen sipariş:
A.doInitialization
B.doSpecificInitialization
B.doTests
Gerçek sipariş:
B.doSpecificInitialization // <- crashes, as the base init is missing
(A.doInitialization // <---not executed
B.doTests) // <-/