Mockito এবং KotlinTest ব্যবহার করে Mocking

Testing এবং Debugging Kotlin Code - কটলিন (Kotlin) - Mobile App Development

366

Mockito এবং KotlinTest ব্যবহার করে Mocking

Mocking হলো টেস্টিংয়ের একটি প্রযুক্তি যা একটি অবজেক্টের আচরণ প্রতিস্থাপন করতে ব্যবহার করা হয়। এটি সাধারণত ইউনিট টেস্টে ব্যবহৃত হয়, যেখানে আপনি একটি ক্লাসের নির্দিষ্ট অংশের জন্য নির্ভরশীলতাকে বিচ্ছিন্ন করতে চান। কটলিনে Mockito এবং KotlinTest ব্যবহার করে Mocking করা যেতে পারে। নিচে এই দুটি লাইব্রেরির ব্যবহার নিয়ে বিস্তারিত আলোচনা করা হলো।


১. Mockito সেটআপ

Mockito হলো একটি জনপ্রিয় ফ্রেমওয়ার্ক যা জাভা এবং কটলিনের জন্য ব্যবহৃত হয়। এটি মক অবজেক্ট তৈরি করতে সাহায্য করে, যা টেস্টিংয়ের সময় সহজে ব্যবহার করা যায়।

i) Mockito Dependency যুক্ত করা

Gradle এর build.gradle.kts ফাইলে Mockito এবং KotlinTest এর ডিপেন্ডেন্সি যুক্ত করুন:

dependencies {
    testImplementation("org.mockito:mockito-core:5.0.0")
    testImplementation("io.kotest:kotest-runner-junit5:5.4.2") // KotlinTest
}

২. Mockito ব্যবহার করে Mocking

উদাহরণ: Mockito দিয়ে মক অবজেক্ট তৈরি করা

import org.junit.jupiter.api.Test
import org.mockito.Mockito.*
import kotlin.test.assertEquals

// Sample service interface
interface UserService {
    fun getUser(id: String): String
}

class UserServiceTest {

    @Test
    fun testGetUser() {
        // Create a mock object
        val userService = mock(UserService::class.java)

        // Define behavior for the mock
        `when`(userService.getUser("123")).thenReturn("Alice")

        // Use the mock
        val user = userService.getUser("123")

        // Assertions
        assertEquals("Alice", user)
    }
}

ব্যাখ্যা:

  • এখানে UserService একটি ইন্টারফেস যা একটি getUser মেথড রয়েছে।
  • mock(UserService::class.java) ব্যবহার করে UserService এর একটি মক অবজেক্ট তৈরি করা হয়েছে।
  • when ব্যবহার করে getUser মেথডের জন্য আচরণ নির্ধারণ করা হয়েছে, যাতে এটি "Alice" ফেরত দেয়।

৩. KotlinTest ব্যবহার করে Mocking

KotlinTest (বর্তমানে Kotest হিসাবে পরিচিত) হল কটলিনের জন্য একটি টেস্টিং ফ্রেমওয়ার্ক যা বিভিন্ন টেস্টিং স্টাইল এবং আর্গুমেন্টস সহ টেস্টিং সমর্থন করে।

উদাহরণ: Kotest দিয়ে মক অবজেক্ট তৈরি করা

import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.shouldBe
import io.mockk.every
import io.mockk.mockk

// Sample service interface
interface UserService {
    fun getUser(id: String): String
}

class UserServiceTest : StringSpec({
    
    "should return user name" {
        // Create a mock object
        val userService = mockk<UserService>()

        // Define behavior for the mock
        every { userService.getUser("123") } returns "Alice"

        // Use the mock
        val user = userService.getUser("123")

        // Assertions
        user shouldBe "Alice"
    }
})

ব্যাখ্যা:

  • এখানে mockk ফাংশন ব্যবহার করে UserService এর একটি মক অবজেক্ট তৈরি করা হয়েছে।
  • every ফাংশন ব্যবহার করে getUser মেথডের জন্য আচরণ নির্ধারণ করা হয়েছে, যাতে এটি "Alice" ফেরত দেয়।
  • shouldBe ব্যবহার করে আউটপুট যাচাই করা হয়েছে।

উপসংহার

Mockito এবং KotlinTest (Kotest) উভয়ই কটলিনে Mocking এর জন্য কার্যকর টুল। Mockito ব্যবহার করে সাধারণত Java-style mocking হয়, যেখানে Kotest ব্যবহার করে একটি কটলিনে মূলত আরও স্বচ্ছন্দ এবং কার্যকরী উপায়ে Mocking করা যায়। এই টুলগুলো ব্যবহার করে আপনি ইউনিট টেস্টে নির্ভরশীলতা নিয়ন্ত্রণ এবং কোডের মান যাচাই করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...