assertArrayEquals(), assertThrows(), assertNotNull() এর ব্যবহার

Assertions এর ব্যবহার - জেইউনিট (JUnit) - Java Technologies

357

JUnit হল একটি Java ফ্রেমওয়ার্ক যা ইউনিট টেস্টিং করার জন্য ব্যবহৃত হয়। JUnit এর মাধ্যমে আপনি সহজেই কোডের কার্যকারিতা যাচাই করতে পারেন এবং এটি আপনাকে বিভিন্ন অ্যাসারশন মেথড সরবরাহ করে, যা টেস্টের ফলাফল যাচাই করার জন্য ব্যবহার করা হয়। আজকের আলোচনায়, আমরা assertArrayEquals(), assertThrows(), এবং assertNotNull() মেথডগুলির ব্যবহার দেখব।


১. assertArrayEquals(): অ্যারে টেস্টিংয়ের জন্য

assertArrayEquals() মেথডটি দুটি অ্যারে একে অপরের সাথে তুলনা করতে ব্যবহৃত হয়। এটি নিশ্চিত করে যে দুটি অ্যারে সমান কিনা। যদি অ্যারেগুলি সমান না হয়, তাহলে JUnit একটি AssertionError ছুড়ে দিবে।

উদাহরণ: assertArrayEquals() ব্যবহার

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertArrayEquals;

public class ArrayTest {
    
    @Test
    public void testArrayEquality() {
        int[] expected = {1, 2, 3, 4};
        int[] actual = {1, 2, 3, 4};
        
        // Check if both arrays are equal
        assertArrayEquals(expected, actual, "Arrays should be equal");
    }
    
    @Test
    public void testArrayInequality() {
        int[] expected = {1, 2, 3, 4};
        int[] actual = {1, 2, 3, 5};
        
        // This will fail because arrays are not equal
        assertArrayEquals(expected, actual, "Arrays are not equal");
    }
}

এখানে, testArrayEquality() পাস হবে কারণ দুটি অ্যারে সমান। তবে, testArrayInequality() একটি AssertionError ফেলে দিবে, কারণ অ্যারেগুলি সমান নয়।


২. assertThrows(): এক্সসেপশন টেস্টিংয়ের জন্য

assertThrows() মেথডটি টেস্ট করতে ব্যবহৃত হয় যে, একটি নির্দিষ্ট এক্সসেপশন সঠিকভাবে ছুড়ে দেওয়া হচ্ছে কিনা। আপনি যখন কোনো কোডের মধ্যে একটি এক্সসেপশন ছুড়তে চান, তখন assertThrows() মেথড ব্যবহার করতে পারেন।

উদাহরণ: assertThrows() ব্যবহার

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertThrows;

public class ExceptionTest {
    
    @Test
    public void testExceptionThrown() {
        // Check if ArithmeticException is thrown
        assertThrows(ArithmeticException.class, () -> {
            int result = 1 / 0;  // This will throw ArithmeticException
        });
    }
    
    @Test
    public void testNoExceptionThrown() {
        // This test will pass because no exception is thrown
        assertThrows(NullPointerException.class, () -> {
            String str = null;
            str.length();  // This will throw NullPointerException
        });
    }
}

এখানে, testExceptionThrown() পাস হবে, কারণ ArithmeticException সঠিকভাবে ছুড়ে দেওয়া হয়েছে। testNoExceptionThrown() এক্সসেপশন টেস্টিংয়ের ক্ষেত্রে ভুল ছিল এবং একটি AssertionError ছুড়ে দিবে কারণ NullPointerException ছুড়ে দেওয়া হয়েছে।


৩. assertNotNull(): অবজেক্ট নাল নয় কিনা টেস্ট করা

assertNotNull() মেথডটি একটি অবজেক্টের মান চেক করার জন্য ব্যবহৃত হয়। যদি অবজেক্টটি null হয়, তাহলে এটি AssertionError ছুড়ে দিবে। এই মেথডটি তখন ব্যবহৃত হয় যখন নিশ্চিত করতে চান যে একটি অবজেক্ট null নয়।

উদাহরণ: assertNotNull() ব্যবহার

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;

public class NullCheckTest {
    
    @Test
    public void testNotNull() {
        String str = "JUnit Testing";
        
        // Check if the string is not null
        assertNotNull(str, "String should not be null");
    }

    @Test
    public void testNull() {
        String str = null;
        
        // This will fail because the string is null
        assertNotNull(str, "String should not be null");
    }
}

এখানে, testNotNull() পাস হবে কারণ স্ট্রিংটি null নয়। তবে, testNull() একটি AssertionError ছুড়ে দিবে, কারণ স্ট্রিংটি null


সারাংশ

assertArrayEquals(), assertThrows(), এবং assertNotNull() হল JUnit এর গুরুত্বপূর্ণ অ্যাসারশন মেথড যা টেস্টিংয়ে ব্যবহৃত হয়:

  • assertArrayEquals(): দুটি অ্যারে সমান কিনা তা যাচাই করে।
  • assertThrows(): এক্সসেপশন ছুড়ে দেওয়ার সঠিকতা যাচাই করে।
  • assertNotNull(): অবজেক্টটি null নয় কিনা তা নিশ্চিত করে।

এই অ্যাসারশন মেথডগুলি JUnit টেস্টিংকে আরও শক্তিশালী এবং নির্ভরযোগ্য করে তোলে, এবং আপনি আপনার কোডের গুণগত মান নিশ্চিত করতে এগুলি ব্যবহার করতে পারেন।


Content added By
Promotion

Are you sure to start over?

Loading...