يتم تطبيق التعليق التوضيحيSpy في JUnit، خاصة عند استخدامه مع Mockito، لإنشاء تجسس على كائن فعلي. التجسس عبارة عن محاكاة جزئية، مما يعني أنه يمكنك الاستهزاء ببعض أساليب الكائن مع الاحتفاظ بالسلوك الحقيقي للطرق الأخرى.
إليك بعض الاستخدامات الشائعة للتعليق التوضيحي @Spy:
السخرية الجزئية:
@Spy private ListspyList = new ArrayList(); @Test public void testSpy() { spyList.add("Mockito"); Mockito.verify(spyList).add("Mockito"); assertEquals(1, spyList.size()); Mockito.doReturn(100).when(spyList).size(); assertEquals(100, spyList.size()); }
تجاوز سلوك الطريقة الحقيقية:
@Spy private MyClass myClass = new MyClass(); @Test public void testSpyWithMethodOverride() { Mockito.doReturn("Mocked Value").when(myClass).someMethod(); assertEquals("Mocked Value", myClass.someMethod()); }
التحقق من استدعاءات الطريقة:
@Spy private MyClass myClass = new MyClass(); @Test public void testMethodCallVerification() { myClass.someMethod(); Mockito.verify(myClass).someMethod(); }
الدمج معInjectMocks:
@Spy private MyDependency dependency; @InjectMocks private MyService service; @Test public void testService() { Mockito.doReturn("Mocked Result").when(dependency).doSomething(); assertEquals("Mocked Result", service.performAction()); }
اختبار الكود القديم:
باختصار، يعد التعليق التوضيحي @Spy مفيدًا عندما تحتاج إلى التحكم أو التحقق من سلوكيات معينة لكائن فعلي مع الحفاظ على بقية سلوك الكائن دون تغيير.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3