JUnit হল একটি জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক যা Java প্রোগ্রামিং ভাষায় ইউনিট টেস্টিং পরিচালনা করতে ব্যবহৃত হয়। JUnit 4 এবং JUnit 5 এর মধ্যে কিছু গুরুত্বপূর্ণ পরিবর্তন রয়েছে। তবে, JUnit 5 এর মধ্যে JUnit 4 এর সাথে backward compatibility রাখা হয়েছে, যাতে পুরনো JUnit 4 টেস্টও JUnit 5 তে চালানো যায়।
এই টিউটোরিয়ালে, আমরা আলোচনা করব কিভাবে JUnit 5 এর মধ্যে JUnit 4 টেস্টের backward compatibility নিশ্চিত করা যায় এবং এই প্রক্রিয়া কি ধরনের সুবিধা প্রদান করে।
১. JUnit 4 এবং JUnit 5 এর মধ্যে পার্থক্য
JUnit 5 একটি নতুন ভার্সন যা JUnit Platform, JUnit Jupiter, এবং JUnit Vintage এর সমন্বয়ে তৈরি হয়েছে। JUnit 4 এর অনেক ফিচার আধুনিক করা হয়েছে, তবে কিছু পরিবর্তন আনা হয়েছে যা JUnit 4 এর সাথে সামঞ্জস্যপূর্ণ নয়।
JUnit 5 এর প্রধান বৈশিষ্ট্য:
- JUnit Platform: এটি একটি রানটাইম প্ল্যাটফর্ম যা JUnit 5 টেস্ট রান এবং রিপোর্টিং পরিচালনা করে।
- JUnit Jupiter: এটি নতুন API এবং এক্সটেনশন মডিউল যা নতুন টেস্ট কেস এবং অ্যানোটেশন ব্যবহারের সুযোগ দেয়।
- JUnit Vintage: এটি JUnit 3 এবং JUnit 4 টেস্ট কেস চালানোর জন্য ব্যবহৃত হয়, যা backward compatibility নিশ্চিত করে।
২. JUnit 4 টেস্ট JUnit 5 তে চলানো
JUnit 5 তে JUnit 4 টেস্ট চালানোর জন্য JUnit Vintage ইঞ্জিন ব্যবহার করা হয়। এটি পুরনো JUnit 4 টেস্টগুলিকে নতুন প্ল্যাটফর্মে চালানোর জন্য সমর্থন প্রদান করে।
২.১ Maven Configuration for JUnit 4 and JUnit 5 Integration
JUnit 4 টেস্ট JUnit 5 তে চালানোর জন্য Maven প্রোজেক্টে নিচের ডিপেনডেন্সি যোগ করতে হবে।
<dependencies>
<!-- JUnit 5 Dependency -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
<!-- JUnit 5 Vintage Engine Dependency (For Running JUnit 4 Tests) -->
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
<!-- JUnit Platform Engine Dependency (JUnit 5 Platform) -->
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.7.0</version>
<scope>test</scope>
</dependency>
</dependencies>
এখানে, junit-vintage-engine ডিপেনডেন্সি JUnit 4 টেস্টগুলিকে JUnit 5 প্ল্যাটফর্মে চালানোর সুযোগ দেয়।
২.২ Gradle Configuration for JUnit 4 and JUnit 5 Integration
Gradle প্রোজেক্টে JUnit 4 এবং JUnit 5 একসাথে ব্যবহার করতে নিম্নলিখিত কনফিগারেশন যুক্ত করুন:
dependencies {
// JUnit 5 Dependencies
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
// JUnit 4 Vintage Engine Dependency
testImplementation 'org.junit.vintage:junit-vintage-engine:5.7.0'
}
৩. JUnit 4 টেস্টের উদাহরণ
এখানে একটি সাধারণ JUnit 4 টেস্ট কেসের উদাহরণ দেয়া হলো যা JUnit 5 তে রান করা যাবে।
Example of JUnit 4 Test:
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class JUnit4TestExample {
@Test
public void testAdd() {
int result = 2 + 2;
assertEquals(4, result);
}
}
এই JUnit 4 টেস্ট কেসটি JUnit 5 এর মাধ্যমে JUnit Vintage Engine ব্যবহার করে চালানো যাবে।
৪. JUnit 5 এ JUnit 4 টেস্ট চালানো
এখন, যখন আপনি JUnit 5 প্ল্যাটফর্মে JUnit 4 টেস্ট চালাতে চান, তখন আপনি JUnit Vintage Engine এর মাধ্যমে এটি করতে পারেন।
৪.১ JUnit 5 Test Example
এখানে একটি JUnit 5 টেস্ট কেসের উদাহরণ দেয়া হলো:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class JUnit5TestExample {
@Test
public void testAdd() {
int result = 2 + 2;
assertEquals(4, result);
}
}
এখানে, JUnit 5 এর @Test অ্যানোটেশন ব্যবহার করা হয়েছে এবং assertEquals পদ্ধতি JUnit 5 এর থেকে এসেছে।
৫. JUnit 5 এবং JUnit 4 টেস্ট একসাথে রান করা
যেহেতু JUnit 5 এর JUnit Vintage Engine রয়েছে, আপনি একই সময় JUnit 4 এবং JUnit 5 টেস্ট একসাথে রান করতে পারেন। এটি সহজতর করার জন্য আপনি IDE তে (যেমন Eclipse বা IntelliJ IDEA) একই প্রোজেক্টে দুইটি টেস্ট ফ্রেমওয়ার্ক ব্যবহার করতে পারেন।
৬. JUnit 5 এর সাথে JUnit 4 টেস্ট চালানোর সুবিধা
- Backward Compatibility: JUnit 5 আপনাকে JUnit 4 এর পুরনো টেস্ট কোড চালানোর সুযোগ দেয়, তাই আপনি বিদ্যমান কোডবেস পরিবর্তন না করে JUnit 5 এর নতুন ফিচার ব্যবহার করতে পারেন।
- Gradual Migration: আপনি ধীরে ধীরে আপনার JUnit 4 টেস্টগুলিকে JUnit 5 তে রিফ্যাক্টর করতে পারেন, কারণ উভয় ফ্রেমওয়ার্ক একসাথে চলতে পারে।
- Mixed Test Environments: আপনি একই সময় JUnit 4 এবং JUnit 5 টেস্ট একসাথে চালাতে পারেন, যা পুরনো টেস্ট ও নতুন টেস্টের মধ্যে সামঞ্জস্য রাখে।
সারাংশ
JUnit 5 এ JUnit 4 টেস্ট চালানোর জন্য JUnit Vintage Engine ব্যবহৃত হয়, যা আপনাকে পুরনো কোডবেসের টেস্টগুলো পুনরায় চালানোর সুবিধা দেয়। JUnit 5 প্ল্যাটফর্মে JUnit 4 এর টেস্ট কেসগুলো backward compatibility প্রদান করে, তাই আপনি ধীরে ধীরে আপনার টেস্টগুলো নতুন ফিচারের সাথে আপডেট করতে পারেন, এবং একটি মিশ্র টেস্টিং পরিবেশে কাজ চালিয়ে যেতে পারেন।
Read more