البرمجة

اختبار Mockito للتحقق من استدعاء دالة أثناء استدعاء دالة أخرى

عند استخدام Mockito لاختبار دوال في Scala، يمكنك استخدامه للتحقق من أن دالة معينة تم استدعاؤها بالطريقة الصحيحة عند استدعاء دالة أخرى. في حالتك، تحتاج إلى التحقق من أن Function2 تم استدعاؤها بشكل صحيح عندما يتم استدعاء Function1. هناك طريقتان لفعل ذلك، يمكنك استخدام أحدهما:

الطريقة الأولى: استخدام Mockito.verify

scala
import org.scalatest._ import org.mockito.Mockito._ import org.mockito.ArgumentMatchers._ trait MyTrait { def function1(): Unit = { function2("parameter") } def function2(param: String): Unit = { // some implementation } } class MyTraitSpec extends FlatSpec with Matchers with MockitoSugar { "MyTrait" should "call function2 with 'parameter' when function1 is called" in { val myTraitMock = mock[MyTrait] myTraitMock.function1() verify(myTraitMock).function2("parameter") } }

الطريقة الثانية: استخدام ArgumentCaptor

scala
import org.scalatest._ import org.mockito.Mockito._ import org.mockito.ArgumentMatchers._ import org.mockito.ArgumentCaptor trait MyTrait { def function1(): Unit = { function2("parameter") } def function2(param: String): Unit = { // some implementation } } class MyTraitSpec extends FlatSpec with Matchers with MockitoSugar { "MyTrait" should "call function2 with 'parameter' when function1 is called" in { val myTraitMock = mock[MyTrait] myTraitMock.function1() val captor = ArgumentCaptor.forClass(classOf[String]) verify(myTraitMock).function2(captor.capture()) captor.getValue shouldEqual "parameter" } }

باستخدام أحد الطرق السابقة، يمكنك التحقق من أن Function2 تم استدعاؤها بالطريقة الصحيحة عند استدعاء Function1.

المزيد من المعلومات

بالتأكيد! إليك بعض المعلومات الإضافية حول استخدام Mockito في Scala:

1. إعادة قيمة من دالة مزيفة

يمكنك استخدام when لتعيين قيمة تُرجع عند استدعاء دالة مزيفة. على سبيل المثال:

scala
when(myTraitMock.function2(any[String])).thenReturn("mocked value")

2. التحقق من عدد مرات استدعاء دالة

يمكنك استخدام verify مع القيمة المتوقعة للمرات التي يجب أن تستدعى فيها الدالة. على سبيل المثال:

scala
verify(myTraitMock, times(1)).function2("parameter")

3. التحقق من استدعاء الدالة بترتيب معين

إذا كان لديك حاجة للتحقق من استدعاء الدوال في ترتيب محدد، يمكنك استخدام InOrder مع verify، على سبيل المثال:

scala
val inOrder = inOrder(myTraitMock) inOrder.verify(myTraitMock).function1() inOrder.verify(myTraitMock).function2("parameter")

4. التحقق من عدم استدعاء دالة

إذا كنت تريد التحقق من عدم استدعاء دالة، يمكنك استخدام never()، على سبيل المثال:

scala
verify(myTraitMock, never()).function2("parameter")

5. التحقق من استدعاء الدالة بنوع معين من المعلمة

يمكنك استخدام ArgumentMatchers لتحديد نوع المعاملات المتوقعة عند التحقق من استدعاء الدوال، على سبيل المثال:

scala
verify(myTraitMock).function2(matches("[a-z]+"))

هذه بعض الأمثلة البسيطة على كيفية استخدام Mockito في Scala لاختبار وتحقق استدعاء الدوال.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر