@BeforeClass এবং @AfterClass টেস্টএনজি-তে ব্যবহৃত গুরুত্বপূর্ণ অ্যানোটেশন, যা টেস্ট ক্লাসের শুরুতে এবং শেষে কোনো কার্যক্রম সম্পাদনের জন্য ব্যবহার করা হয়। এগুলো সাধারণত টেস্ট স্যুট চলাকালে সেটআপ বা ক্লিনআপ কার্যক্রমের জন্য ব্যবহৃত হয়।
@BeforeClass
@BeforeClass অ্যানোটেশনটি এমন একটি মেথডকে চিহ্নিত করে যা একটি টেস্ট ক্লাসের সমস্ত টেস্ট মেথড চালানোর আগে একবার এক্সিকিউট হবে। এটি মূলত টেস্ট স্যুটের জন্য প্রাথমিক সেটআপের জন্য ব্যবহার করা হয়।
@AfterClass
@AfterClass অ্যানোটেশনটি এমন একটি মেথডকে চিহ্নিত করে যা টেস্ট ক্লাসের সমস্ত টেস্ট মেথড সম্পন্ন হওয়ার পরে একবার এক্সিকিউট হয়। এটি সাধারণত ক্লিনআপ বা রিসোর্স রিলিজের জন্য ব্যবহৃত হয়।
উদাহরণ ১: টেস্ট ক্লাসের পূর্বে এবং পরে কার্যক্রম চালানো
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ExampleTest {
@BeforeClass
public void setUp() {
System.out.println("BeforeClass: টেস্ট ক্লাস শুরু হওয়ার আগে সেটআপ করা হচ্ছে।");
}
@Test
public void testMethod1() {
System.out.println("Test 1 চলছে।");
}
@Test
public void testMethod2() {
System.out.println("Test 2 চলছে।");
}
@AfterClass
public void tearDown() {
System.out.println("AfterClass: টেস্ট ক্লাস শেষ হওয়ার পরে ক্লিনআপ করা হচ্ছে।");
}
}
আউটপুট
BeforeClass: টেস্ট ক্লাস শুরু হওয়ার আগে সেটআপ করা হচ্ছে।
Test 1 চলছে।
Test 2 চলছে।
AfterClass: টেস্ট ক্লাস শেষ হওয়ার পরে ক্লিনআপ করা হচ্ছে।
উদাহরণ ২: ডেটাবেস কানেকশন সেটআপ এবং ক্লিনআপ
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class DatabaseTest {
@BeforeClass
public void connectToDatabase() {
System.out.println("BeforeClass: ডেটাবেসের সাথে সংযোগ স্থাপন করা হচ্ছে।");
}
@Test
public void runQuery1() {
System.out.println("Query 1 চলছে।");
}
@Test
public void runQuery2() {
System.out.println("Query 2 চলছে।");
}
@AfterClass
public void disconnectFromDatabase() {
System.out.println("AfterClass: ডেটাবেস সংযোগ বন্ধ করা হচ্ছে।");
}
}
আউটপুট
BeforeClass: ডেটাবেসের সাথে সংযোগ স্থাপন করা হচ্ছে।
Query 1 চলছে।
Query 2 চলছে।
AfterClass: ডেটাবেস সংযোগ বন্ধ করা হচ্ছে।
ব্যবহারের ক্ষেত্র
- সেটআপ (Setup): টেস্ট স্যুট চালানোর আগে রিসোর্স, ডেটাবেস কানেকশন, ফাইল লোডিং ইত্যাদি কাজ করার জন্য।
- ক্লিনআপ (Cleanup): টেস্ট স্যুট শেষ হওয়ার পরে রিসোর্স রিলিজ, ডেটাবেস কানেকশন বন্ধ ইত্যাদি কাজের জন্য।
উপকারিতা
- টেস্ট ক্লাসের শুরু এবং শেষে নির্দিষ্ট কার্যক্রম পরিচালনার সুবিধা।
- কোডের পুনরাবৃত্তি কমিয়ে রাখে।
- টেস্ট স্যুট পরিচালনা আরও সহজ এবং কার্যকর হয়।
এই অ্যানোটেশনগুলোর সঠিক ব্যবহার টেস্টিং প্রক্রিয়াকে আরও সংগঠিত ও কার্যকর করে তোলে।
Read more