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 аркылуу башталуусу керек.