Java:
টেস্ট লিখা

কিভাবে:

জাভা ডেভেলপাররা মূলত দুটি টেস্টিং ফ্রেমওয়ার্ক ব্যবহার করে: JUnit এবং TestNG। এখানে, আমরা JUnit নিয়ে আলোচনা করব, যা এর সাদাসিধে ব্যবহার এবং ব্যাপক গ্রহণযোগ্যতার কারণে টেস্ট লিখতে জনপ্রিয় বিকল্প।

JUnit মূলকথা

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

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

JUnit এ একটি বেসিক টেস্ট এরকম দেখায়:

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

public class CalculatorTest {
    
    @Test
    public void testAdd() {
        Calculator calculator = new Calculator();
        assertEquals(5, calculator.add(2, 3), "2 + 3 এর মান 5 হওয়া উচিত");
    }
}

এই টেস্টটি সম্পাদন করলে, ফলাফল হয় পাস, যেটা দেখায় add মেথডটি প্রত্যাশিত অনুসারে কাজ করে, অথবা ফেইল হয়, যা একটি ত্রুটি বার্তা দেখায়।

Mockito দিয়ে Mocking

বাস্তব দুনিয়ায়, সাধারণত অবজেক্টগুলো অন্যান্য অবজেক্টের উপর নির্ভরশীল থাকে। Mockito একটি জনপ্রিয় mocking ফ্রেমওয়ার্ক যা টেস্টিং এর জন্য mock অবজেক্ট তৈরি করতে সাহায্য করে।

আপনার Maven প্রজেক্টে Mockito যোগ করুন:

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

Mockito সহ একটি সাধারণ ব্যবহারের উদাহরণ:

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

public class UserServiceTest {

    @Test
    public void testGetUsername() {
        // Create a mock UserRepository
        UserRepository mockRepository = mock(UserRepository.class);

        // Mock অবজেক্টের আচরণ নির্ধারণ
        when(mockRepository.getUsername(1)).thenReturn("john_doe");

        UserService userService = new UserService(mockRepository);
        
        assertEquals("john_doe", userService.getUsername(1), "User ID 1 এর জন্য john_doe থাকা উচিত");
    }
}

এই mock এর মাধ্যামে আমরা UserService টি টেস্ট করতে পারি একটি আসল UserRepository ছাড়াই, যেটা UserService এর মধ্যে থাকা যুক্তি পরীক্ষা করতে সাহায্য করে।