আমার একটি ইন্টিগ্রেশন টেস্ট স্যুট আছে। আমার IntegrationTestBase
সমস্ত পরীক্ষা বাড়ানোর জন্য আমার একটি ক্লাস রয়েছে। এই বেস ক্লাসে এপিআই এবং ডিবি সংযোগ স্থাপনের জন্য একটি @Before
( public void setUp()
) এবং @After
( public void tearDown()
) পদ্ধতি রয়েছে। আমি যা করছি তা হ'ল প্রতিটি টেস্টকেস এবং কলিং super.setUp()
এবং এ দুটি পদ্ধতিকে ওভাররাইড করা super.tearDown()
। তবে এটি সমস্যার কারণ হতে পারে যদি কেউ সুপারটি কল করতে ভুলে যায় বা তাদের ভুল জায়গায় রাখে এবং একটি ব্যতিক্রম ছুঁড়ে দেওয়া হয় এবং তারা শেষ পর্যন্ত বা কোনও কিছুতে সুপার কল করতে ভুলে যায়।
আমি কি কাজ করতে চান করতে হয় setUp
এবং tearDown
বেস বর্গ উপর পদ্ধতি final
এবং তারপর শুধু আমাদের নিজের সটীক যোগ @Before
এবং @After
পদ্ধতি। কিছু প্রাথমিক পরীক্ষা করা এটি সর্বদা এই ক্রমে কল করে বলে মনে হচ্ছে:
Base @Before
Test @Before
Test
Test @After
Base @After
তবে আমি কেবলমাত্র উদ্বিগ্ন যে আদেশটি গ্যারান্টিযুক্ত নয় এবং এটি সমস্যার কারণ হতে পারে। আমি চারদিকে তাকালাম এবং বিষয়টিতে কিছুই দেখিনি। কেউ কি জানেন যে আমি এটি করতে পারি এবং কোনও সমস্যা নেই?
কোড:
public class IntegrationTestBase {
@Before
public final void setUp() { *always called 1st?* }
@After
public final void tearDown() { *always called last?* }
}
public class MyTest extends IntegrationTestBase {
@Before
public final void before() { *always called 2nd?* }
@Test
public void test() { *always called 3rd?* }
@After
public final void after() { *always called 4th?* }
}
MyTest
একটি অনুপস্থিতextends
?