Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ما هو الفرق بين الأوقات (n) والمتنقل (n) في طريقة التحقق من Mockito


ما هو الفرق بين الأوقات (n) والمتنقل (n) في طريقة التحقق من Mockito


في Mockito ، يتم استخدام `Times (n)` و `على الأقل (n)` في طريقة "التحقق" للتحقق من عدد المرات التي يتم فيها استدعاء الطريقة على كائن وهمية. إليك شرح مفصل لكل:

Times (N)

- الغرض: تتحقق هذه الطريقة من أن الطريقة تسمى بالضبط "أوقات". إذا تسمى الطريقة أكثر أو أقل من "أوقات" ، فسوف يفشل الاختبار.
- مثال: `تحقق (وهمية ، الأوقات (2)). somemethod () ؛` يضمن أن `somemethod ()` يسمى بالضبط مرتين.
- استخدام الحالة: استخدم عندما تحتاج إلى ضمان عدد دقيق من الدعوات.

على الأقل (ن)

- الغرض: تتحقق هذه الطريقة من أن الطريقة تسمى على الأقل "مرات". إذا تم تسمية الطريقة أقل من "أوقات" ، فسوف يفشل الاختبار ، لكنه سيمر إذا كان يسمى أكثر من أوقات ".
- مثال: `تحقق (وهمية ، على الأقل (2)). somemethod () ؛` يضمن أن `somemethod ()` يسمى على الأقل مرتين.
- استخدم الحالة: استخدم عندما تريد ضمان الحد الأدنى لعدد الدعوات ولكن لا تهتم بالحد الأقصى.

الاختلافات الرئيسية

- بالضبط مقابل الحد الأدنى: `مرات (n)` يتطلب عدد دقيق من المكالمات ، في حين أن `على الأقل (n)` يتطلب على الأقل عدد المكالمات.
- المرونة: `على الأقل (n)` أكثر مرونة لأنها تتيح المزيد من المكالمات أكثر من المحدد ، في حين أن `times (n)` صارمة حول عدد المكالمات.
- معالجة الأخطاء: إذا تسمى طريقة تسمى مرات أكثر مما هو محدد مع "مرات (ن) ، سوف يرمي Mockito استثناء (tomanyactualinvocations"). مع `على الأقل (n)` ، لن يفشل إلا إذا تم تسمية الطريقة بأوقات أقل من المحددة ("toolittleActualinvocations").

باختصار ، يتم استخدام "الأوقات (ن)" للتحكم الدقيق في عدد مكالمات الطريقة ، بينما يتم استخدام "على الأقل (ن)" لضمان الحد الأدنى من عتبة المكالمات دون تقييد الحد الأقصى لعدد المكالمات.

الاستشهادات:
[1] https://stackoverflow.com/questions/58176580/what-is-the-difference-between-atleastonce-and-times1-in-mockito
[2] https://mincong.io/2019/09/22/mockito-verify/
[3] https://github.com/mockk/mockk
[4] https://site.mockito.org/javadoc/current/org/mockito/mockito.html
[5] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.atleast
[6] https://stackoverflow.com/questions/60969650/use-of-verify-method-with-and-without-times1-parameter
[7] https://www.digitalocean.com/community/tutorials/mockito-verify
[8] https://stackoverflow.com/questions/27787487/java-verify-void-method-calls-n-times-with-mockito
[9] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[10] https://stackoverflow.com/questions/54233024/how-to-verify-a-method-hich-was-called-multiple-times/54233921