test-driven-development
تطبيق التطوير القائم على الاختبار
متاح أيضًا من: Cycleaddict,davila7,DMJGilbert,DYAI2025,Cygnusfear,CodingCossack,obra
كتابة الاختبارات بعد كتابة الكود تؤدي إلى ثقة خاطئة وتخطي حالات الحافة. هذه المهارة تفرض انضباط TDD: اكتب اختبارًا فاشلًا أولاً، ثم نفّذ الحد الأدنى من الكود لاجتيازه.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "test-driven-development". أحتاج إلى إضافة دالة تتحقق من صحة عناوين البريد الإلكتروني
النتيجة المتوقعة:
لنبدأ بـ TDD. أولاً، سأكتب اختبارًا فاشلًا:
```typescript
test('rejects invalid email', () => {
expect(validateEmail('invalid')).toBe(false);
});
```
الآن سأشغّل هذا الاختبار للتأكد من فشله...
استخدام "test-driven-development". يجب أن تتعامل دالة تسجيل الدخول مع كلمات المرور الخاطئة
النتيجة المتوقعة:
اتباع TDD، أولاً الاختبار:
```typescript
test('rejects wrong password', async () => {
const result = await login('user@test.com', 'wrongpass');
expect(result.success).toBe(false);
expect(result.error).toBe('Invalid credentials');
});
```
تشغيل الاختبار للتحقق من فشله...
التدقيق الأمني
آمنThis is a legitimate Test-Driven Development educational skill. The static analyzer detected 73 potential issues, but after semantic evaluation, all findings are FALSE POSITIVES. The 'external_commands' detections are markdown code block delimiters (backticks) in documentation, not actual shell execution. The 'weak cryptographic algorithm' and 'network reconnaissance' detections are similarly false positives triggered by keywords in educational context. No executable malicious code exists in this skill.
مشكلات متوسطة المخاطر (1)
درجة الجودة
ماذا يمكنك بناءه
تنفيذ ميزة جديدة
عند بناء ميزة جديدة، اكتب الاختبار أولاً الذي يحدد السلوك المتوقع، راقب فشله، ثم نفّذ الكود لاجتيازه
سير عمل إصلاح الأخطاء
عند إصلاح خطأ، اكتب أولاً اختبارًا يعيد إنتاج الخطأ، راقب فشله، ثم أصلح الكود لاجتياز الاختبار
إعادة الهيكلة بثقة
قبل إعادة الهيكلة، تأكد من وجود اختبارات. الاختبارات تتحقق من بقاء السلوك صحيحًا بعد تغييرات الكود
جرّب هذه الموجهات
أحتاج إلى تنفيذ [وصف الميزة]. اتبع TDD، أولاً اكتب اختبارًا فاشلًا يحدد السلوك المتوقع. لا تكتب كود التنفيذ بعد.
شغّل الاختبار الذي كتبته للتو وأكد فشله للسبب الصحيح (الميزة مفقودة، وليس بسبب أخطاء إملائية). أعرض لي رسالة الفشل الدقيقة.
الآن اكتب الحد الأدنى من الكود المطلوب لاجتياز الاختبار. لا تضف ميزات إضافية أو تعيد الهيكلة. فقط اجعل الاختبار يجتاز.
هناك خطأ حيث [وصف الخطأ]. أولاً اكتب اختبارًا يعيد إنتاج هذا الخطأ ويفشل. ثم سأصلحه.
أفضل الممارسات
- اكتب اختبارًا واحدًا في كل مرة - ركّز على سلوك واحد
- سمّ الاختبارات حسب السلوك الذي تتحقق منه، وليس حسب ما يتم اختباره
- راقب دائمًا فشل الاختبار قبل كتابة التنفيذ
- حافظ على التنفيذ الأدنى - اجتز الاختبار الحالي فقط
تجنب
- كتابة كود التنفيذ قبل الاختبارات (ثم 'تكييف' الاختبارات)
- الإبقاء على كود التنفيذ الفاشل كـ 'مرجع' أثناء كتابة الاختبارات
- اختبارات تجتاز فورًا - لا تثبت شيئًا
- اختبار سلوك المحاكاة بدلاً من سلوك المكون الحقيقي
الأسئلة المتكررة
ما هو التطوير القائم على الاختبار؟
لماذا نكتب الاختبارات قبل الكود؟
ماذا إذا كان الاختبار صعب الكتابة؟
هل يمكنني تخطي TDD للكود البسيط؟
ماذا إذا كتبت التنفيذ بالفعل؟
هل يبطئ TDD التطوير؟
تفاصيل المطور
المؤلف
ZhanlinCuiالترخيص
MIT
المستودع
https://github.com/ZhanlinCui/Ultimate-Agent-Skills-Collection/tree/main/test-driven-developmentمرجع
main
بنية الملفات