"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ما هو الفرق الرئيسي بين AcceptTimeout وassertTimeoutPreemptively؟

ما هو الفرق الرئيسي بين AcceptTimeout وassertTimeoutPreemptively؟

تم النشر بتاريخ 2024-07-30
تصفح:797

في منشور المدونة هذا، سأشرح الفرق الرئيسي بين هاتين الطريقتين. أولا لماذا نستخدم هذه الأساليب. ستكون هذه الطريقة مفيدة عندما نختبر أداء أساليبنا أو عندما نريد معرفة مقدار الوقت الذي تستغرقه طريقتنا حتى تكتمل.

كيف تعمل هذه الأساليب؟

أولاً علينا أن نعطي وقتًا لطريقة الاختبار الخاصة بنا، وبعد ذلك تقوم هذه الاختبارات بتنفيذ العمليات في الاختبار. إذا استغرقت هذه العمليات وقتًا أطول من المحدد، فسيفشل هذا الاختبار.

الفرق بين AssurTimeout وassertTimeoutPreemptively

حسنًا الآن، نحن نعرف ما هي هذه الأساليب، ولماذا نستخدمها في طرق الاختبار لدينا. ثم يجب علينا أن نعرف الفرق.

اسمحوا لي أن أشرح بإيجاز. تحسب طريقة AssurTimeout الوقت الذي نمنحه، إذا استغرقت طريقة الاختبار الخاصة بنا وقتًا أطول من المحدد، فسيفشل هذا الاختبار بعد اكتمال جميع العمليات. ومع ذلك، إذا استغرق الأسلوب SubmitTimeoutPreemptively وقتًا أطول من المحدد، فستفشل هذه الطريقة على الفور. ولن ننتظر حتى تكتمل جميع العمليات، وسنختبر ذلك في المشروع في الخطوة التالية.

امتحان

افتح IDE المفضل لديك أولاً. أفتح Intellij Idea لأن بيئة التطوير المتكاملة (IDE) تحظى بشعبية كبيرة بين مطوري Java. بالطبع يمكنك استخدام بيئة التطوير المتكاملة (IDE) المفضلة لديك مثل Eclipse وNetbeans أيهما تفضل.

الآن قم بإنشاء مشروع Maven جديد وأضف هاتين التبعيتين إلى ملف pom.xml الخاص بك.

org.junit.jupiterjunit-jupiter-api5.3.1testorg.junit.jupiterjunit-jupiter-engine5.3.1test

بعد إضافة هذه العناصر، افتح المجلد src/test/java و

أنشئ فصلًا جديدًا وأعطي الاسم الذي تريده وسأعطيه TimeoutTest.

إنشاء طريقتين للاختبار، إحداهما تختبر AssurTimeout والأخرى تختبر AssurTimeoutPreemptively.

assertTimeout and assertTimeoutPreemptively

بعد ذلك أعطي المدة وأضيف رسالة مطبوعة بسيطة.

Informational messages

أضيف طريقة Thread.sleep() وينام الخيط 8000 مللي ثانية (8 ثوانٍ). لكن هاتين الطريقتين ستفشلان لأن هاتين الطريقتين تستغرقان وقتًا أطول من 3 ثوانٍ. اسمحوا لي أن أختبر هذه الأساليب لفهم أفضل.

result of methods

وترى أن طريقة testAssertTimeout تستغرق 8s 3ms لأن هذه الطريقة تنتظر إكمال جميع العمليات، لكن الطريقة الأخرى تستغرق 3s 45ms، ولا تنتظر لإكمال العملية الأخرى ، فإنه يفشل على الفور.

يمكنك رؤية الرسالة التي تقوم طريقة testAssertTimeout بطباعة الرسالة ولكن الطريقة AssureTimeoutPreemptively لا تطبع الرسالة، بل تتجاهل العمليات الأخرى.

خاتمة

تحدثنا في هذا المنشور عن الفرق الرئيسي بين AcceptTimeout وassertTimeoutPreemptively.

أخيرًا، الكود متاح على جيثب.

اعتني بنفسك، نراكم قريبًا.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/mammadyahyayev/what-is-the-main-difference-between-asserttimeout-and-asserttimeoutpreemptively-8l?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3