2.1 @মক টীকা

মকিটোতে মক অবজেক্টের সাথে কাজ করার দুটি উপায় রয়েছে। প্রথমটি হল একটি সম্পূর্ণ ভার্চুয়াল অবজেক্ট তৈরি করা , দ্বিতীয়টি হল একটি বিদ্যমান অবজেক্টকে একটি মোড়কে মোড়ানো। প্রথমটা দিয়ে শুরু করা যাক।

একটি সম্পূর্ণ ভার্চুয়াল অবজেক্ট তৈরি করতে, আপনাকে কোডটি লিখতে হবে:

ClassName variable name = Mockito.mock(ClassName.class);

আসুন একটি উদাহরণ হিসাবে একটি মক অ্যারেলিস্ট ক্লাস তৈরি করি:

@ExtendWith(MockitoExtension.class)
class MockTest {
    @Test
    public void whenNotUseMockAnnotation_thenCorrect() {
        List mockList = Mockito.mock(ArrayList.class);
        //these methods won't do anything - they are stubs
        mockList.add("one");
        mockList.add("two");
    }
}

এই উদাহরণে, আমরা একটি নকল ArrayList তৈরি করি এবং মকলিস্ট ভেরিয়েবলে এটির একটি রেফারেন্স সংরক্ষণ করি। এই বস্তুর পদ্ধতি কিছুই না.

যাইহোক, এই কোডটি আরও ছোট করে লেখা যেতে পারে, যেহেতু এটির জন্য একটি বিশেষ টীকা রয়েছে @Mock

@ExtendWith(MockitoExtension.class)
class MockTest {
    @Mock
    List mockList;

    @Test
    public void whenNotUseMockAnnotation_thenCorrect() {
        //these methods won't do anything - they are stubs
        mockList.add("one");
        mockList.add("two");
    }
}

দ্বিতীয় ক্ষেত্রে, MockitoExtensionএটি ক্লাস কোড নিজেই বিশ্লেষণ করবে এবং প্রয়োজনীয় স্টাব তৈরি করবে। আপনাকে পদ্ধতিটি কল করার দরকার নেই Mockito.mock()। একটি টীকা এবং ভার্চুয়াল অবজেক্ট প্রস্তুত। সৌন্দর্য।

2.2 @স্পাই টীকা

মকিটোতে দ্বিতীয় গুরুত্বপূর্ণ ধরনের অবজেক্ট হল বিদ্যমান বস্তুর উপর মোড়ানো। তারা একদিকে, বিদ্যমান ক্লাসগুলি ব্যবহার করার অনুমতি দেয় এবং অন্যদিকে, এই জাতীয় বস্তুর সমস্ত পদ্ধতি এবং ভেরিয়েবলের কলগুলিকে বাধা দেওয়ার জন্য: যেখানে প্রয়োজন সেখানে তাদের কাজ সংশোধন করতে। এগুলি প্রায়ই মক অবজেক্ট হিসাবে ব্যবহৃত হয়।

একটি বস্তুর উপর একটি মোড়ক তৈরি করতে, আপনাকে কোডটি লিখতে হবে:

ClassName variable name = Mockito.spy(an object);

ArrayList ক্লাসের চারপাশে একটি মোড়ক সহ একটি উদাহরণ:

@ExtendWith(MockitoExtension.class)
class SpyTest {
    @Test
    public void whenMockAnnotation() {
        List<String> mockList = Mockito.spy(new ArrayList<String>());
        //these methods will work!
        mockList.add("one");
        mockList.add("two");
    }
}

এর সহজতম আকারে, একটি র‍্যাপার অবজেক্টে একটি কল কেবল মূল বস্তুতে কলগুলিকে পুনঃনির্দেশিত করে, যার রেফারেন্স এটি নিজের ভিতরে রাখে । সবকিছু ঠিক মূল বস্তুর মত কাজ করবে।

আপনি টীকা ব্যবহার করে একটি মোড়ক তৈরি করতে পারেন - @Spy

@ExtendWith(MockitoExtension.class)
class SpyTest {
    @Spy
    List mockList = new ArrayList<String>();

    @Test
    public void whenMockAnnotation() {
        // these methods will work!
        mockList.add("one");
        mockList.add("two");
    }
}

এই দুটি কোড উদাহরণ সমতুল্য।