انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهJNR-047-L03

الاختبارات المتقلبة والهشّة

  • الدرس 3 من 5
  • Junior
في هذا الدرس 4 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

spot and fix tests that fail without a real bug.

الموضوعات المخطط لها

  • A flaky test passes and fails on the same code. Causes: time, test order, randomness, shared data, real network, async timing.
  • Control time with an injected Clock instead of LocalDate.now().
  • Avoid Thread.sleep; wait for a condition (Awaitility) or make the code synchronous in tests.
  • Seed or fix randomness.
  • A brittle test breaks when you refactor without changing behavior: usually over-specified (too many verifies, exact strings).
تفاصيل المخطط المبدئي

عرض عملي

java
Clock fixed = Clock.fixed(Instant.parse("2025-01-15T10:00:00Z"), ZoneOffset.UTC);
var service = new CouponService(fixed);

اختبر فهمك

Why is Thread.sleep(2000) a bad wait?

أظهر الإجابة

Too slow when fast, too short when the machine is busy; it is a guess.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.