المهارات python-testing-patterns
📦

python-testing-patterns

آمن ⚙️ الأوامر الخارجية🌐 الوصول إلى الشبكة🔑 متغيرات البيئة

كتابة اختبارات بايثون أفضل

متاح أيضًا من: ActiveInferenceInstitute,wshobson

كتابة اختبارات قابلة للصيانة أمر صعب. هذه المهارة توفر أنماط pytest شاملة بما في ذلك التجهيزات (fixtures)، والمحاكاة (mocking)، والتحديد البارامتري، وسير عمل TDD لمساعدتك في بناء مجموعات اختبارات موثوقة.

يدعم: Claude Codex Code(CC)
🥉 72 برونزي
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "python-testing-patterns". كتابة اختبارات لدالة calculate_discount التي تأخذ price و discount_percentage، وتعيد السعر المخفض

النتيجة المتوقعة:

ملف اختبار أساسي مع حالات اختبار متعددة تغطي الخصومات العادية، والخصم صفر، والمدخلات غير الصالحة

استخدام "python-testing-patterns". إنشاء تجهيزات لاختبار اتصال قاعدة البيانات بنطاق session

النتيجة المتوقعة:

إعداد التجهيزات مع نمط yield/teardown مناسب لإدارة موارد قاعدة البيانات

استخدام "python-testing-patterns". محاكاة طلبات HTTP إلى عميل API يجلب بيانات المستخدم

النتيجة المتوقعة:

اختبارات تستخدم patch() لمحاكاة requests.get مع سيناريوهات استجابة مختلفة

التدقيق الأمني

آمن
v1 • 2/24/2026

All 87 static findings are false positives. The detected patterns (external_commands, network, env_access) are documentation examples of pytest commands, HTTP mocking patterns, and test fixture configurations - all legitimate testing education content. No actual security threats present.

2
الملفات التي تم فحصها
947
الأسطر التي تم تحليلها
3
النتائج
1
إجمالي عمليات التدقيق

عوامل الخطر

⚙️ الأوامر الخارجية (1)
🌐 الوصول إلى الشبكة (1)
🔑 متغيرات البيئة (1)

الأنماط المكتشفة

External Commands DocumentationNetwork Mocking ExamplesTest Fixture Configurations
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
31
المجتمع
100
الأمان
100
الامتثال للمواصفات

ماذا يمكنك بناءه

إعداد اختبار مشروع بايثون جديد

إعداد مجموعة اختبارات كاملة لمشروع بايثون جديد مع تجهيزات (fixtures)، وتكوين conftest.py، وتكامل CI/CD

تغطية اختبار للكود القديم

إضافة اختبارات إلى كود موجود غير مختبر باستخدام المحاكاة لعزل الوحدات والتحديد البارامتري لتغطية الحالات الحدية

اختبار تكامل API

كتابة اختبارات تكامل لـ REST APIs باستخدام تجهيزات لبيانات الاختبار والمحاكاة لاستدعاءات الخدمات الخارجية

جرّب هذه الموجهات

إنشاء اختبار أساسي
إنشاء اختبارات pytest لدالة تسمى [FUNCTION_NAME] التي [DESCRIPTION]. استخدم نمط AAA.
إعداد التجهيزات
إنشاء تجهيزات pytest بنطاق [SCOPE] لتوفير [RESOURCE] للاختبارات. تضمين الإعداد والهدم المناسبين.
محاكاة الاستدعاءات الخارجية
كتابة اختبارات تحاكي استدعاءات [EXTERNAL_SERVICE] باستخدام unittest.mock. أظهر كلًا من نهج زخرفة patch ومدير السياق.
الاختبار البارامتري
إنشاء اختبارات بارامترية لـ [FUNCTION] باستخدام pytest.mark.parametrize لاختبار [EDGE_CASES].

أفضل الممارسات

  • استخدم أسماء اختبارات وصفية تشرح ما يتم اختباره والسلوك المتوقع
  • حافظ على استقلالية الاختبارات مع إعداد/هدم مناسب - لا توجد حالة مشتركة بين الاختبارات
  • اتبع نمط AAA: Arrange (الإعداد)، Act (التنفيذ)، Assert (التحقق) مفصولة بوضوح

تجنب

  • تجنب أسماء الاختبارات مثل test_1 أو test_function التي لا تصف غرض الاختبار
  • لا تخلط تأكيدات متعددة في اختبار واحد عندما يمكن أن تكون اختبارات منفصلة
  • تجنب اختبار تفاصيل التنفيذ بدلاً من السلوك - اختبر ما يفعله الكود، وليس كيف يفعله

الأسئلة المتكررة

ما الفرق بين اختبارات الوحدات واختبارات التكامل؟
اختبارات الوحدات تختبر دوالًا أو فئات فردية بمعزل عن غيرها. اختبارات التكامل تختبر كيف تعمل مكونات متعددة معًا، مثل اختبار نقاط نهاية API مع قاعدة بيانات حقيقية.
كيف يمكنني محاكاة دالة لا تستخدم مكتبة requests؟
استخدم زخرفة unittest.mock.patch أو مدير السياق لاستبدال أي دالة أو فئة بكائن Mock. استورد مسار الدالة كسلسلة نصية: @patch('module.function_name').
ما هو نطاق التجهيز ومتى يجب استخدام كل نطاق؟
نطاق Function (الافتراضي) ينشئ التجهيز لكل اختبار. نطاق Class مرة واحدة لكل فئة اختبار. نطاق Module مرة واحدة لكل وحدة نمطية. نطاق Session مرة واحدة لكل جلسة اختبار كاملة. استخدم session/module للموارد المكلفة.
كيف أختبر الاستثناءات مع pytest؟
استخدم pytest.raises() كمدير سياق: with pytest.raises(ExpectedException): your_function(). يمكنك اختياريًا تمرير معامل match للتحقق من رسالة الاستثناء.
ما هو التطوير القائم على الاختبار (TDD)؟
TDD هو أسلوب تطوير تكتب فيه الاختبارات قبل الكود. الدورة: اكتب اختبارًا فاشلًا (أحمر)، اكتب أقل قدر من الكود لاجتيازه (أخضر)، أعد هيكلة الكود (إعادة الهيكلة). يساعد في ضمان تصميم قابل للاختبار.
كيف أشغل فقط الاختبارات التي تتطابق مع كلمة رئيسية معينة؟
استخدم معلمة -k في pytest: pytest -k 'test_name_pattern' يشغل فقط الاختبارات التي تتطابق أسماؤها مع النمط. استخدم pytest -m marker لتشغيل الاختبارات التي تحتوي على markers محددة.

تفاصيل المطور

بنية الملفات