دليل الذكاء الاصطناعي لاختبار الوحدات: صفر هلوسة
غالبًا ما يفشل الذكاء الاصطناعي في اختبار الوحدات (unit testing). فهو يبتكر دوال (methods) من عنده، ويقوم بإنشاء هياكل محاكاة (mock structures) خاطئة، ويستخدم استيرادات (imports) غير موجودة. يحدث هذا لأن الذكاء الاصطناعي يفتقر إلى السياق الصارم.
يمكنك إيقاف ذلك باستخدام نظام حتمي (deterministic system). يجب أن تنتقل من مرحلة التخمين إلى مرحلة الإلزام.
إليك المعيار لاختبارات الوحدات الخالية من الهلوسة عبر خمس مجموعات تقنية (stacks) رئيسية.
المعيار التقني (The Tech Stack Standard)
اختر مكتبة واحدة لكل مجموعة تقنية. لا تخلط بينها.
- Node.js (NestJS/Express): Jest
- React.js: Vitest + React Testing Library
- Python: pytest
- Angular: Jest
- Laravel: Pest
السر: قواعد محددة بنطاق المشروع (Project-Scoped Rules)
المطالبات (prompts) القياسية ليست كافية. أنت بحاجة إلى حقن القواعد مباشرة في بيئة التطوير (IDE) الخاصة بك. إذا كنت تستخدم Cursor، فاستخدم المجلد .cursor/rules/.
أنشئ ملفات قواعد محددة لكل تقنية:
unit-test-global.mdc: يحدد نمط AAA (Arrange, Act, Assert).unit-test-nestjs.mdc: يفرض استخدامTestingModuleوjest-mock-extended.unit-test-react.mdc: يفرض استخدامuser-eventبدلاً منfireEvent.unit-test-python.mdc: يوحد أنماطpytest-mock.unit-test-laravel.mdc: يضمن استخدام صيغةPestوMockery.
تعمل هذه الملفات كعقد. يقرأها الذكاء الاصطناعي قبل كل مطالبة. وهذا يمنع الهلوسة من المصدر.
عقد اختبار الوحدات (The Unit Test Contract)
يجب أن يتبع كل اختبار هذه القواعد الخمس:
- العزل (Isolation): قم بمحاكاة (Mock) جميع التبعيات الخارجية. لا تستخدم قواعد بيانات حقيقية أو استدعاءات HTTP.
- الهيكل (Structure): استخدم نمط AAA. قم دائمًا بالتعليق على كتل Arrange و Act و Assert.
- التسمية (Naming): استخدم صيغة "should [behavior] when [condition]". تجنب الأسماء الغامضة مثل "test 1".
- التغطية (Coverage): اختبر المسار السعيد (happy path)، والمدخلات الفارغة (null)، ومسارات الخطأ، والحالات الحدية (edge cases).
- السرعة (Speed): يجب أن يعمل كل اختبار في أقل من 100 مللي ثانية.
خطوات التنفيذ
- قم بإعداد المكتبة وملفات التكوين الخاصة بك.
- أنشئ مجلد
.cursor/rules/. - أضف ملف
CLAUDE.mdفي جذر المشروع ليعمل كذاكرة دائمة. - حدد عتبات التغطية (coverage thresholds) في خط أنابيب CI الخاص بك (استهدف 80% من الأسطر).
- استخدم hooks ما قبل الالتزام (pre-commit hooks) لضمان عدم دخول أي كود غير مختبر إلى المستودع (repo).
توقف عن طلب كتابة الاختبارات من الذكاء الاصطناعي. ابدأ بإخبار الذكاء الاصطناعي كيف يكتب الاختبارات.
Source: https://dev.to/bhaumik-viitor/unit-test-ai-guide-zero-hallucination-cross-stack-standard-4mb2
Optional learning community: https://t.me/GyaanSetuAi