Sobes.tech
Junior — Middle

Тестирлөөдө @Spy белгисин колдонуу тажрыйбаңыз жөнүндө айтып бере аласызбы?

sobes.tech AI

AIден жооп

Javaда @Spy анотациясы Mockito менен тесттерде жарым-жартылай объект (spy) түзүү үчүн колдонулат. @Mock толугу менен имитацияланган объект түзсө, @Spy реалдуу методдорду колдонууга мүмкүндүк берет, бирок белгилүү методдордун жүрүм-турумун өзгөртүүгө болот.

Бул класс тестирлөөдө пайдалуу, анткени анын айрым методдорунун жүрүм-турумун көзөмөлдөөгө болот, мисалы, тышкы кызматтарды чакырууну же оор операцияларды болтурбоо үчүн.

Колдонуу мисалы:

import static org.mockito.Mockito.*;

public class MyServiceTest {

    @Spy
    private MyService myService = new MyService();

    @Test
    public void testPartialMock() {
        // Методтун жүрүм-турумун өзгөртүү
        doReturn("имитацияланган натыйжа").when(myService).someMethod();

        // Башка метод реалдуу түрдө чакырылат
        String result = myService.callAnotherMethod();

        // Натыйжаны текшерүү
        assertEquals("күтүлгөн натыйжа", result);
    }
}

Маанилүү, @Spy туура иштеши үчүн, объект кол менен түзүлүшү керек же MockitoAnnotations же MockitoExtension аркылуу башталуусу керек.