JUnit ফ্রেমওয়ার্ক সংযুক্ত করা হচ্ছে

জাভা কোড পরীক্ষা করার জন্য, আমাদের কাছে JUnit নামে একটি দুর্দান্ত কাঠামো রয়েছে । এটি দুর্দান্ত কাজ করে, এটি ক্রমাগত আপডেট হয়, এটি খুব জনপ্রিয় এবং অবশ্যই Intellij IDEA এর সাথে খুব শক্তভাবে সংহত।

এখন সবাই এই ফ্রেমওয়ার্কের পঞ্চম সংস্করণ ব্যবহার করছে - JUnit 5 , যদিও অনেক প্রকল্পে আপনি এখনও এর চতুর্থ সংস্করণ খুঁজে পেতে পারেন। এগুলি খুব বেশি আলাদা নয়, তবে আমরা যাইহোক সর্বশেষটি দেখে নেব৷ আমি মনে করি আপনি সক্রিয়ভাবে পরীক্ষা লিখতে শুরু করার সময়, আপনি আমার পছন্দ অনুমোদন করবেন।

সুতরাং, কিভাবে প্রকল্পে JUnit যোগ করবেন? Maven শেখার পর এটা সহজ হবে: শুধু এই কোডটি আপনার pom.xml এ যোগ করুন:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
	<version>5.8.1</version>
	<scope>test</scope>
</dependency>

যাইহোক, আপনি যদি চান মাভেন আপনার পরীক্ষাগুলি বিল্ড স্টেজে ( পরীক্ষা পর্যায়ে ) চালাতে, তাহলে আপনাকে pom.xml-এ আরও একটি খণ্ড যুক্ত করতে হবে:

<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
	<version>2.19.1</version>
	<dependencies>
    	<dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-surefire-provider</artifactId>
            <version>1.3.2</version>
    	</dependency>
	</dependencies>
</plugin>

@টেস্ট টীকা

ধরা যাক আপনার একটি ক্লাস আছে যা আপনি পরীক্ষা করতে চান। এই কাজ করতে সবচেয়ে ভালো উপায় কি? আসুন কিছু উদাহরণ দিয়ে শুরু করি, কারণ একটি বিমূর্ত ক্লাস পরীক্ষা করা কঠিন :)

ধরুন আমাদের একটি ক্যালকুলেটর ক্লাস আছে যা 4টি মৌলিক ক্রিয়া সম্পাদন করতে পারে: যোগ, বিয়োগ, গুণ এবং ভাগ। আসুন এটি লিখি:

class Calculator {
    	public int add(int a, int b) {
        	return a+b;
    	}

    	public int sub(int a, int b) {
        	return a-b;
    	}

    	public int mul (int a, int b) {
        	return a*b;
    	}

    	public int div(int a, int b) {
        	return a/b;
    	}
}

আমরা এই ক্লাসের পদ্ধতি পরীক্ষা করতে চাই। আপনি কখনই জানেন না, ভবিষ্যতে তারা কিছু পরিবর্তন করে এবং সবকিছু কাজ করা বন্ধ করে দেবে। কিভাবে আমরা এটার জন্য পরীক্ষা লিখতে পারি?

আমাদের আরেকটি ক্লাস তৈরি করতে হবে। এটি করার জন্য, তারা সাধারণত একই নাম নেয় এবং টেস্ট প্রত্যয় যোগ করে । প্রতিটি পদ্ধতির জন্য, আপনাকে কমপক্ষে একটি পরীক্ষা পদ্ধতি যোগ করতে হবে। উদাহরণ:

class CalculatorTest {
   	@Test
    	public void add() {
    	}
   	@Test
    	public void sub() {
        }
   	@Test
    	public void mul() {
    	}
   	@Test
    	public void div() {
    	}
}

একটি প্রয়োজন ছিল যে পদ্ধতির নাম পরীক্ষা শব্দ দিয়ে শুরু হয় , কিন্তু এটি আর প্রয়োজন নেই।

JUnit পরীক্ষার উদাহরণ

আসুন কিছু উদাহরণ লিখি যাতে আমরা আমাদের ক্যালকুলেটর টেস্ট ক্লাসের পদ্ধতিগুলি পরীক্ষা করব :

class CalculatorTest {
   	@Test
    	public void add() {
        	Calculator calc = new Calculator();
        	int result = calc.add(2, 3);
        	assertEquals(5, result);
    	}

   	@Test
    	public void sub() {
        	Calculator calc = new Calculator();
        	int result = calc.sub(10, 10);
        	assertEquals(0, result);
        }

   	@Test
    	public void mul() {
        	Calculator calc = new Calculator();
        	int result = calc.mul(-5, -3);
        	assertEquals(15, result);
    	}

   	@Test
    	public void div() {
        	Calculator calc = new Calculator();
        	int result = calc.div(2, 3);
        	assertEquals(0, result);
    	}
}

এটি একটি সাধারণ JUnit পরীক্ষা মত দেখায় কি. আকর্ষণীয় থেকে: বিশেষ পদ্ধতি assertEquals() এখানে ব্যবহার করা হয়েছে : এটি এটিতে পাস করা পরামিতিগুলির তুলনা করে, যেমন তার নামের সমান শব্দ দ্বারা নির্দেশিত হয়েছে।

যদি assertEquals() এ পাস করা পরামিতিগুলি সমান না হয়, তবে পদ্ধতিটি একটি ব্যতিক্রম নিক্ষেপ করবে এবং পরীক্ষাটি ব্যর্থ হবে। এই ব্যতিক্রম অন্যান্য পরীক্ষা চালানো থেকে বাধা দেবে না।