मेरे पास एक सार आधार वर्ग है, जिसे मैं अपनी इकाई परीक्षणों के लिए एक आधार के रूप में उपयोग करता हूं (TestNG 5.10)। इस वर्ग में, मैं अपने परीक्षणों के लिए पूरे वातावरण को इनिशियलाइज़ करता हूँ, डेटाबेस मैपिंग आदि की स्थापना करता है। इस अमूर्त वर्ग में @BeforeClassएनोटेशन के साथ एक विधि है जो इनिशियलाइज़ेशन करती है।
अगला, मैं उस वर्ग को विशिष्ट वर्गों के साथ बढ़ाता हूं जिसमें मेरे पास @Testविधियां हैं और @BeforeClassविधियां भी हैं । ये विधियाँ पर्यावरण के वर्ग-विशिष्ट आरंभीकरण को करती हैं (उदाहरण के लिए कुछ अभिलेख डेटाबेस में डालें)।
मैं @BeforeClassएनोटेट विधियों के एक विशिष्ट क्रम को कैसे लागू कर सकता हूं ? मुझे एब्सट्रैक्ट बेस क्लास के लोगों की जरूरत है, जो कि फैली हुई क्लास के लोगों से पहले निष्पादित किए जाएं।
उदाहरण:
abstract class A {
@BeforeClass
doInitialization() {...}
}
class B extends A {
@BeforeClass
doSpecificInitialization() {...}
@Test
doTests() {...}
}
अपेक्षित आदेश:
A.doInitialization
B.doSpecificInitialization
B.doTests
वास्तविक आदेश:
B.doSpecificInitialization // <- crashes, as the base init is missing
(A.doInitialization // <---not executed
B.doTests) // <-/