এই টিউটোরিয়ালটি উদাহরণ সহ JUnit-এ পরীক্ষার ক্ষেত্রে কীভাবে উপেক্ষা করা যায় তা ব্যাখ্যা করে। আপনি JUnit 4 এ @Ignore ব্যবহার করতে শিখবেন & @Disabled annotation in JUnit 5:
আগের টিউটোরিয়ালে, আমরা এপিআইকে টীকা বলে, এটি কী করে তা বুঝতে পেরেছি এবং লাইফসাইকেল টীকাগুলি কীভাবে ব্যবহার করতে হয় তার প্রাথমিক উদাহরণগুলিও দেখেছি। যখন একটি টেস্ট কেস কার্যকর করা হয় তখন ধরে রাখুন।
আসুন সেই পরিস্থিতিতে আলোকপাত করার চেষ্টা করি যখন আমাদের প্রয়োজন হয় নয় চালানো বা হয় না অনুমিত সমস্ত পরীক্ষা কেস চালানোর জন্য. আমরা JUnit এ টেস্ট কেস উপেক্ষা করতে শিখব।
JUnit টেস্ট কেস উপেক্ষা করুন
কিছু কিছু টেস্ট কেস থাকতে পারে যেগুলি চালানো হবে না কারণ সেগুলি নাও হতে পারে কিছু কোড পরিবর্তনের সাথে সম্পর্কিত হতে পারে বা পরীক্ষার ক্ষেত্রে কোডগুলি এখনও বিকাশাধীন হতে পারে, তাই আমরা সেগুলি চালানো এড়িয়ে চলি৷
এই ধরনের ক্ষেত্রে, আমাদের আরও কয়েকটি বাদ দিয়ে পরীক্ষার কেসগুলির একটি সেট চালানোর প্রয়োজন হতে পারে . তাহলে, এটা কি যে JUnit 4, সেইসাথে JUnit 5, আমাদের সরবরাহ করে যাতে আমরা কয়েকটি পরীক্ষার কেসকে উপেক্ষা বা নিষ্ক্রিয় করে বা একে 'এড়িয়ে যাওয়া' বলার সময় শুধুমাত্র কয়েকটি টেস্ট কেস চালাতে পারি?3
সৌভাগ্যবশত, আমাদের কাছে JUnit 4 টীকা আছে JUnit 4 -এর জন্য টীকা আছে যেখানে @Disabled টীকা JUnit 5 একই কাজ করতে।
JUnit 4 – @ignore annotation
- JUnit 4 @Ignore টীকা একটি পরীক্ষা পদ্ধতির জন্য প্রয়োগ করা যেতে পারে, এটির কার্য সম্পাদন এড়িয়ে যেতে। এক্ষেত্রে,আপনি যে পরীক্ষা পদ্ধতিটি এড়িয়ে যেতে চান তার জন্য @Test টীকাটির সাথে @ignore ব্যবহার করতে হবে।
- এনোটেশনটি পরীক্ষার ক্লাসেও প্রয়োগ করা যেতে পারে, একটি ক্লাসের অধীনে সমস্ত পরীক্ষার ক্ষেত্রে এড়িয়ে যেতে। এই ক্ষেত্রে, আপনাকে ক্লাস লেভেলে @Ignore ব্যবহার করতে হবে।
কোডটির প্রয়োজন org.junit প্যাকেজ। @Ignore কাজ করার জন্য ইগনোর আমদানি করতে হবে। আসুন দেখাই কিভাবে একটি JUnit 4 পরীক্ষায় একটি পরীক্ষা পদ্ধতি এড়িয়ে যেতে হয়। প্রথম টেস্টকেস পদ্ধতিটি এড়িয়ে যাওয়ার জন্য আমরা JUnitProgram.java পরিবর্তন করব।
কোড স্নিপেট হল:
@Ignore @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); } @Test public void test_JUnit2() { System.out.println("This is the testcase test_JUnit2() in this class"); } @Test public void test_JUnit3() { System.out.println("This is the testcase test_JUnit3() in this class"); }
ক্লাস ফাইলটি কার্যকর করার সময়, test_JUnit1() কার্যকর করার সময় বাদ দেওয়া হয়। এছাড়া, @Ignore-এর সাথে টীকা করা পদ্ধতি এবং অন্যান্য সমস্ত পরীক্ষা পদ্ধতি প্রত্যাশিতভাবে চালানো হয়।
ফলাফল রানের সংখ্যা দেখায় 3/3টি টেস্ট কেস এবং 1টি টেস্টকেস এড়িয়ে গেছে। রান কাউন্ট 3/3 দেখানো হয়েছে কারণ এমনকি এড়িয়ে যাওয়া টেস্টকেসটি চালানোর চেষ্টা করা হয়েছে।
কনসোল উইন্ডোর নীচের স্ক্রিনশটটি একই প্রমাণ করে।
@Egnore টীকা একটি কারণ প্যারামিটার সহ
@Ignore টীকাতেও একটি ভিন্নতা রয়েছে৷ টীকাটি একটি স্ট্রিং মান সহ একটি একক আর্গুমেন্ট নেয় যা পরীক্ষাটি এড়িয়ে যাওয়ার কারণ৷
আসুন @Ignore টীকাটির এই বৈচিত্রটি প্রদর্শন করা যাক৷
কোড স্নিপেটটি নিম্নরূপ :
@Ignore("the testcase is under development") @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
কনসোল উইন্ডোটি @Ignore টীকাতে পাস করার কারণ ছাড়াই একই ফলাফল দেখায়।
এখন, আসুন দেখি কিভাবে সমস্ত পরীক্ষা হয়একটি শ্রেণীর অন্তর্গত নিষ্ক্রিয় হতে পারে. আমরা এখন JUnitProgram.java
এর জন্য ক্লাস লেভেলে @Ignore টীকা আপডেট করব
কোড স্নিপেটটি নীচে দেখানো হয়েছে:
import org.junit.AfterClass; @Ignore("the testcase is under development") public class JUnitProgram { @BeforeClass public static void preClass() { System.out.println("This is the preClass() method that runs one time before the class"); } @Before public void setUp() { System.out.println("_______________________________________________________\n"); System.out.println("This is the setUp() method that runs before each testcase"); } @Test public void test_JUnit1() { System.out.println("This is the testcase test_JUnit1() in this class"); }
ক্লাস ফাইলের এক্সিকিউশনের পরে, কনসোল দেখায় কিছুই নয়, এবং JUnit ট্যাবের অধীনে চালান গণনা দেখায় 1টি ক্লাসের মধ্যে 1টি ক্লাস এড়িয়ে গেছে .
নীচে কনসোল উইন্ডোর স্ক্রিনশট দেওয়া হল:
JUnit 5 – @Disabled টীকা
@JUnit 5-এ অক্ষম করা টীকাটি একইভাবে কাজ করে যেমন @JUnit 4-এ টীকা উপেক্ষা করুন।
- আপনি পরীক্ষা স্তরে টীকা প্রয়োগ করে পরীক্ষা পদ্ধতি বা পরীক্ষার একটি গোষ্ঠীর জন্য সম্পাদন নিষ্ক্রিয় বা এড়িয়ে যেতে পারেন।
- অথবা পরীক্ষা পদ্ধতি স্তরে প্রয়োগ করার পরিবর্তে ক্লাস লেভেলে @Disabled টীকা প্রয়োগ করে সমস্ত পরীক্ষা বাদ দেওয়া যেতে পারে।
@Ignore এর মত, একটি কারণও পাস করা যেতে পারে যেকোন ডেভেলপার বা ব্যবসায়িক বিশ্লেষকের জন্য @Disabled-এর জন্য কেন একটি নির্দিষ্ট টেস্টকেস বাদ দেওয়া হয়েছিল। পরামিতিটি @Ignore-এর ক্ষেত্রে যেমন ঐচ্ছিক রয়ে গেছে।
( দ্রষ্টব্য: আমরা @Disabled টীকাটিকে একটি প্রকৃত কোডের মাধ্যমে প্রদর্শন করা এড়িয়ে চলব যাতে এটি অনুসরণ করে পুনরাবৃত্তি এড়াতে JUnit 4-এ @Ignore অনুসরণ করা হয়। ক্লাস লেভেল, JUnit ক্লাস ফাইলের পোস্ট-এক্সিকিউশন, JUnit 4 -এর ক্ষেত্রে রান কাউন্ট দেখায় 1/1 ক্লাস বাদ দেওয়া হয়েছে।
অতএব এড়িয়ে যাওয়া ক্লাসের গণনা দেওয়া হয়েছে যেখানে এর ক্ষেত্রে JUnit 5 দেখায় যে ক্লাসের মোট তিনটি পরীক্ষার পদ্ধতির মধ্যে তিনটি পরীক্ষা পদ্ধতি বাদ দেওয়া হয়েছে বিবেচনা করে 3/3টি পরীক্ষার কেস বাদ দেওয়া হয়েছে।
অতএব, এড়িয়ে যাওয়া পরীক্ষার ক্ষেত্রে দৃশ্যমানতা , JUnit 5 JUnit 4 এর তুলনায় কিছুটা ভাল কাজ করে।
উপসংহার
এই টিউটোরিয়ালে, আমরা শিখেছি কী কী পরিস্থিতিতে আমাদের কিছু টেস্ট কেস এড়িয়ে যেতে হবে। আমরা আরও শিখেছি কিভাবে JUnit 4 এবং JUnit 5 উভয় ক্ষেত্রেই নির্দিষ্ট কিছু পরীক্ষাকে এড়িয়ে যেতে হয়।