MongoDB এর জন্য JUnit এবং Mockito ব্যবহার

Java Technologies - জাভা মঙ্গোডিবি (Java MongoDB) - MongoDB এর জন্য Unit Testing এবং Integration Testing
151

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

এখানে MongoDB এর জন্য JUnit এবং Mockito ব্যবহার করে ইউনিট টেস্ট করার একটি উদাহরণ আলোচনা করা হবে।


MongoDB এর জন্য JUnit এবং Mockito সেটআপ

১. Maven বা Gradle ডিপেনডেন্সি যোগ করা

প্রথমে, আপনি আপনার প্রজেক্টে প্রয়োজনীয় ডিপেনডেন্সি যোগ করবেন। JUnit এবং Mockito এর জন্য নিচের ডিপেনডেন্সি গুলি আপনার pom.xml (Maven) অথবা build.gradle (Gradle) ফাইলে যোগ করতে হবে।

Maven Dependency:

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.7.0</version>
    <scope>test</scope>
</dependency>

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

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.8.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>4.4.0</version>
</dependency>

Gradle Dependency:

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
testImplementation 'org.mockito:mockito-core:3.8.0'
testImplementation 'org.mongodb:mongo-java-driver:4.4.0'

২. MongoDB এর জন্য Mockito মকিং

MongoDB এর জন্য Mockito ব্যবহার করতে হলে আপনাকে MongoDB এর ক্লাসগুলো মক করতে হবে, যাতে আপনি ডেটাবেস অ্যাক্সেস ছাড়াই ইউনিট টেস্ট করতে পারেন। নিচে একটি উদাহরণ দেওয়া হয়েছে যেখানে MongoCollection মক করা হয়েছে।

Mockito মকিং উদাহরণ:

import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;

import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

public class MongoServiceTest {

    @Test
    void testInsertDocument() {
        // MongoDB collection mock করা
        MongoDatabase mockDatabase = Mockito.mock(MongoDatabase.class);
        MongoCollection<Document> mockCollection = Mockito.mock(MongoCollection.class);

        // MongoDatabase থেকে MongoCollection ফেরত দেয়ার জন্য স্টাবিং করা
        when(mockDatabase.getCollection("myCollection")).thenReturn(mockCollection);

        // ডকুমেন্ট তৈরি এবং ইনসার্ট করার জন্য সিমুলেট করা
        Document doc = new Document("name", "John").append("age", 30);
        mockCollection.insertOne(doc);

        // ইনসার্ট অপারেশন পরীক্ষা
        verify(mockCollection).insertOne(doc);
    }
}

এখানে, MongoDatabase এবং MongoCollection মক করা হয়েছে, এবং insertOne মেথডটি যাচাই করা হয়েছে। এইভাবে, আপনি ডেটাবেসের উপর নির্ভর না করেই মেথডগুলোর কার্যকারিতা পরীক্ষা করতে পারবেন।


৩. JUnit টেস্টিং MongoDB অপারেশন

JUnit ব্যবহার করে MongoDB এর সাথে কাজ করা সহজ। নিচে একটি উদাহরণ দেওয়া হয়েছে যেখানে MongoDB ক্লায়েন্টের সাথে সংযোগ স্থাপন এবং একটি ডকুমেন্ট ইনসার্ট করার টেস্ট করা হয়েছে।

JUnit টেস্টিং উদাহরণ:

import static org.junit.jupiter.api.Assertions.*;

import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

public class MongoServiceTest {

    private MongoClient mongoClient;
    private MongoDatabase database;
    private MongoCollection<Document> collection;

    @BeforeEach
    void setUp() {
        mongoClient = new MongoClient("localhost", 27017);
        database = mongoClient.getDatabase("testDB");
        collection = database.getCollection("myCollection");
    }

    @Test
    void testInsertDocument() {
        // ডকুমেন্ট তৈরি এবং ইনসার্ট করা
        Document doc = new Document("name", "Alice").append("age", 25);
        collection.insertOne(doc);

        // ডকুমেন্টটি সংগ্রহে উপস্থিত কিনা তা যাচাই
        Document foundDoc = collection.find(new Document("name", "Alice")).first();
        assertNotNull(foundDoc);
        assertEquals("Alice", foundDoc.getString("name"));
    }

    @Test
    void testUpdateDocument() {
        // ডকুমেন্ট আপডেট করা
        collection.updateOne(new Document("name", "Alice"), new Document("$set", new Document("age", 26)));

        // আপডেট করা ডকুমেন্ট চেক করা
        Document updatedDoc = collection.find(new Document("name", "Alice")).first();
        assertEquals(26, updatedDoc.getInteger("age"));
    }

    @Test
    void testDeleteDocument() {
        // ডকুমেন্ট ডিলিট করা
        collection.deleteOne(new Document("name", "Alice"));

        // ডিলিট হওয়া ডকুমেন্ট চেক করা
        Document deletedDoc = collection.find(new Document("name", "Alice")).first();
        assertNull(deletedDoc);
    }
}

এখানে JUnit টেস্টের মাধ্যমে MongoDB তে ডকুমেন্ট ইনসার্ট, আপডেট, এবং ডিলিট অপারেশন করা হয়েছে। @BeforeEach অ্যনোটেশন ব্যবহার করে টেস্ট চলাকালীন MongoDB এর সাথে সংযোগ স্থাপন করা হয়েছে।

MongoDB এর জন্য JUnit এবং Mockito ব্যবহার করে আপনি আপনার Java অ্যাপ্লিকেশনের ইউনিট টেস্ট করতে পারেন এবং ডেটাবেসের কার্যকারিতা নিশ্চিত করতে পারবেন। Mockito ব্যবহার করে আপনি MongoDB এর ক্লাসগুলো মক করতে পারেন, এবং JUnit ব্যবহার করে MongoDB অপারেশনগুলো টেস্ট করতে পারেন। এই টুলগুলি আপনার অ্যাপ্লিকেশনের টেস্টিং প্রক্রিয়া সহজ এবং দক্ষ করে তোলে।


Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...