Gson Serialization এবং Deserialization এর জন্য Unit Test তৈরি

Gson এর জন্য Unit Testing - জিসন (Gson) - Java Technologies

319

Gson সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন এর জন্য ইউনিট টেস্ট তৈরি করা একটি গুরুত্বপূর্ণ কাজ যা নিশ্চিত করে যে আপনার JSON প্রক্রিয়া সঠিকভাবে কাজ করছে। ইউনিট টেস্টের মাধ্যমে আপনি আপনার JSON ফরম্যাটের সঠিকতা যাচাই করতে পারেন এবং নিশ্চিত হতে পারেন যে ডেটা সঠিকভাবে সিরিয়ালাইজ এবং ডেসিরিয়ালাইজ হচ্ছে।

এখানে আমি Gson সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন এর জন্য একটি ইউনিট টেস্ট তৈরির উদাহরণ দেব। আমরা JUnit ফ্রেমওয়ার্ক ব্যবহার করে এই টেস্ট তৈরি করব।

1. Maven ডিপেনডেন্সি

প্রথমে আপনার pom.xml ফাইলে Gson এবং JUnit এর ডিপেনডেন্সি যোগ করুন:

<dependencies>
    <!-- Gson dependency -->
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.8</version>
        <scope>test</scope>
    </dependency>

    <!-- JUnit dependency -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.7.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.7.1</version>
        <scope>test</scope>
    </dependency>
</dependencies>

2. Java ক্লাস:

এখন আমরা একটি সাধারণ Java ক্লাস Person তৈরি করি এবং এর সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন এর জন্য ইউনিট টেস্ট লিখব।

public class Person {
    private String name;
    private int age;

    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // Getters and Setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}

3. JUnit টেস্ট ক্লাস:

এখন, JUnit ব্যবহার করে Gson এর সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন চেক করার জন্য একটি টেস্ট ক্লাস লিখব।

import com.google.gson.Gson;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class GsonSerializationTest {

    private final Gson gson = new Gson();

    // Unit Test for Serialization
    @Test
    public void testSerialization() {
        // Arrange
        Person person = new Person("John", 30);

        // Act
        String json = gson.toJson(person);

        // Assert
        String expectedJson = "{\"name\":\"John\",\"age\":30}";
        assertEquals(expectedJson, json, "Serialization failed");
    }

    // Unit Test for Deserialization
    @Test
    public void testDeserialization() {
        // Arrange
        String json = "{\"name\":\"John\",\"age\":30}";

        // Act
        Person person = gson.fromJson(json, Person.class);

        // Assert
        assertNotNull(person, "Deserialization failed");
        assertEquals("John", person.getName(), "Name mismatch");
        assertEquals(30, person.getAge(), "Age mismatch");
    }

    // Unit Test for Serialization and Deserialization Round-Trip
    @Test
    public void testSerializationDeserializationRoundTrip() {
        // Arrange
        Person originalPerson = new Person("John", 30);

        // Act: Serialize -> Deserialize
        String json = gson.toJson(originalPerson);
        Person deserializedPerson = gson.fromJson(json, Person.class);

        // Assert: Check if original and deserialized objects are equal
        assertEquals(originalPerson.getName(), deserializedPerson.getName(), "Name mismatch after round-trip");
        assertEquals(originalPerson.getAge(), deserializedPerson.getAge(), "Age mismatch after round-trip");
    }
}

ব্যাখ্যা:

  1. testSerialization():
    • এখানে Person অবজেক্টকে Gson ব্যবহার করে JSON এ সিরিয়ালাইজ করা হচ্ছে। তারপর আমরা সিরিয়ালাইজড JSON ফরম্যাটের সাথে তুলনা করছি। যদি এটি মিল না খায়, তাহলে টেস্টটি ব্যর্থ হবে।
  2. testDeserialization():
    • এখানে একটি JSON স্ট্রিং দিয়ে Person অবজেক্ট ডেসিরিয়ালাইজ করা হচ্ছে। তারপর আমরা যাচাই করছি যে ডেসিরিয়ালাইজড অবজেক্টটির ফিল্ড মান সঠিকভাবে সেট হয়েছে কিনা।
  3. testSerializationDeserializationRoundTrip():
    • এখানে আমরা একটি Person অবজেক্ট সিরিয়ালাইজ করে JSON তৈরি করছি এবং তারপর সেই JSON থেকে আবার Person অবজেক্ট ডেসিরিয়ালাইজ করছি। এরপর, আমরা যাচাই করছি যে অরিজিনাল অবজেক্ট এবং ডেসিরিয়ালাইজড অবজেক্ট একই।

4. JUnit টেস্ট চালানো:

যদি আপনি Maven ব্যবহার করেন, আপনি টেস্ট চালাতে পারেন:

mvn test

অথবা, আপনি IDE (যেমন IntelliJ IDEA বা Eclipse) থেকেও টেস্ট রান করতে পারেন।

5. আউটপুট:

এখন, যদি সবকিছু সঠিকভাবে কাজ করে, JUnit টেস্টগুলো সফল হবে এবং নিচের মতো আউটপুট আসবে:

Test passed: testSerialization
Test passed: testDeserialization
Test passed: testSerializationDeserializationRoundTrip

সারাংশ:

  • Gson সিরিয়ালাইজেশন এবং ডেসিরিয়ালাইজেশন এর জন্য JUnit টেস্ট তৈরি করতে, আমরা Gson এর toJson() এবং fromJson() মেথড ব্যবহার করে সিরিয়ালাইজেশন ও ডেসিরিয়ালাইজেশন কার্যকারিতা যাচাই করি।
  • আমরা JUnit ব্যবহার করে পরীক্ষাগুলি লিখে যাচাই করি যে JSON ফরম্যাট সঠিক এবং ডেটা সঠিকভাবে ট্রান্সফার হচ্ছে।
  • Unit tests নিশ্চিত করে যে আপনার JSON প্রক্রিয়াগুলি কাজ করছে এবং পরবর্তীতে কোড পরিবর্তন করলে তা ঠিকভাবে কাজ করবে।
Content added By
Promotion

Are you sure to start over?

Loading...