مرحباً أيها المطورون! اليوم، سنغوص في عالم اختبار الوحدات مع FastAPI. سواء كنت محترفًا متمرسًا أو جديدًا في FastAPI، ستساعدك هذه الدليل في ضمان أن واجهة برمجة التطبيقات الخاصة بك قوية قدر الإمكان. سنغطي كل شيء من أساسيات اختبار الوحدات إلى تقنيات محددة لاختبار تطبيقات FastAPI. بالإضافة إلى ذلك، سنقدم لك أداة مفيدة تسمى Apidog التي يمكن أن تسهل عملية الاختبار الخاصة بك.
لماذا يُعد اختبار الوحدات مهمًا
قبل أن نغوص في التفاصيل الدقيقة لاختبار الوحدات مع FastAPI، دعنا نتحدث عن سبب أهمية اختبار الوحدات. ببساطة، يسمح لك اختبار الوحدات بالتحقق من أن كل جزء من تطبيقك يعمل كما هو مقصود. من خلال اختبار مكونات فردية، يمكنك اكتشاف الأخطاء مبكرًا وضمان أن سلوك تطبيقك صحيح.
إليك بعض الأسباب الق compelling لتبني اختبار الوحدات:
- اكتشاف الأخطاء مبكرًا: من خلال اختبار وحدات صغيرة من الشيفرة، يمكنك تحديد وإصلاح المشكلات قبل أن تصبح مشاكل كبيرة.
- ضمان جودة الشيفرة: تعمل اختبارات الوحدات كشبكة أمان، مما يساعدك في الحفاظ على شيفرة عالية الجودة مع تطور مشروعك.
- تسهيل إعادة الهيكلة: مع مجموعة قوية من الاختبارات، يمكنك إعادة هيكلة شيفرتك بثقة، مع العلم أن أي مشكلات ستكتشف على الفور.
- تحسين الوثائق: تعتبر الاختبارات بمثابة توثيق إضافي، تظهر كيف يُفترض أن تعمل الأجزاء المختلفة من تطبيقك.
الآن بعد أن فهمنا أهمية اختبار الوحدات، دعنا نغوص في تفاصيل اختبار الوحدات مع FastAPI.

إعداد مشروع FastAPI الخاص بك
أولاً وقبل كل شيء، تحتاج إلى إعداد مشروع FastAPI. إذا لم تكن قد فعلت ذلك بالفعل، يمكنك إنشاء مشروع FastAPI جديد باتباع هذه الخطوات:
تثبيت FastAPI و Uvicorn: FastAPI هو إطار العمل، و Uvicorn هو الخادم ASGI.
pip install fastapi uvicorn
إنشاء تطبيق FastAPI الخاص بك: أنشئ ملفًا يسمى main.py
وأضف الشيفرة التالية:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
تشغيل تطبيقك: ابدأ الخادم باستخدام Uvicorn.
uvicorn main:app --reload
تطبيق FastAPI الخاص بك يعمل الآن!
البدء في اختبار الوحدات
تثبيت المتطلبات الاختبارية
لبدء اختبار الوحدات، ستحتاج إلى إطار عمل للاختبار. نوصي باستخدام pytest لأنه سهل الاستخدام ومعتمد على نطاق واسع.
قم بتثبيت pytest باستخدام pip:
pip install pytest
بالإضافة إلى ذلك، قم بتثبيت httpx
لإجراء طلبات HTTP إلى تطبيق FastAPI الخاص بك خلال الاختبارات:
pip install httpx
كتابة اختبارك الأول
دعنا نكتب اختبارًا بسيطًا للتحقق من أن نقطة النهاية الجذرية ترجع الاستجابة المتوقعة. أنشئ ملفًا باسم test_main.py
وأضف الشيفرة التالية:
from fastapi.testclient import TestClient
from main import app
client = TestClient(app)
def test_read_root():
response = client.get("/")
assert response.status_code == 200
assert response.json() == {"Hello": "World"}
في هذا الاختبار، نستخدم TestClient
الخاص بـ FastAPI لإرسال طلب GET إلى نقطة النهاية الجذرية ونتأكد من أن الاستجابة صحيحة. قم بتشغيل الاختبار باستخدام pytest:
pytest
هيكلة اختباراتك
للحفاظ على تنظيم اختباراتك، ضع في اعتبارك الهيكل التالي لملفات الاختبار الخاصة بك:
project/
├── app/
│ ├── main.py
│ └── ... (شيفرة تطبيق أخرى)
├── tests/
│ ├── __init__.py
│ └── test_main.py
من خلال وضع اختباراتك في دليل مخصص tests
، يمكنك الحفاظ على قاعدة شيفرة نظيفة ومنظمة.
تقنيات اختبار الوحدات المتقدمة
اختبار نقاط النهاية مع المعلمات
تسهل FastAPI التعامل مع المعلمات في نقاط النهاية الخاصة بك. دعنا نضيف نقطة نهاية تأخذ معاملًا ونكتب اختبارًا لها.
قم بتحديث main.py
مع نقطة نهاية جديدة:
@app.get("/items/{item_id}")
def read_item(item_id: int):
return {"item_id": item_id}
التالي، أضف اختبارًا لهذه النقطة النهائية في test_main.py
:
def test_read_item():
item_id = 42
response = client.get(f"/items/{item_id}")
assert response.status_code == 200
assert response.json() == {"item_id": item_id}
يتحقق هذا الاختبار من أن النقطة النهائية ترجع بشكل صحيح معرف العنصر الممرر في عنوان URL.
اختبار حقن التبعية
نظام حقن التبعية في FastAPI قوي ومرن. دعنا نرى كيف يمكنك اختبار النقاط النهائية التي تستخدم التبعيات.
أضف تبعية إلى main.py
:
from fastapi import Depends
def get_query(q: str = None):
return q
@app.get("/search/")
def search(query: str = Depends(get_query)):
return {"query": query}
اكتب اختبارًا لهذه النقطة النهائية في test_main.py
:
def test_search():
query = "fastapi"
response = client.get(f"/search/?q={query}")
assert response.status_code == 200
assert response.json() == {"query": query}
هنا، نختبر أن حقن التبعية يتعامل بشكل صحيح مع معامل الاستعلام.
تقديم Apidog للاختبار المحسن
ما هو Apidog؟
Apidog هو أداة رائعة تبسط اختبار واجهات برمجة التطبيقات والوثائق. ومن السهل دمجها مع FastAPI، مما يسمح لك بأتمتة وتبسيط عملية الاختبار الخاصة بك.

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

تعريف حالات الاختبار الخاصة بك: التالي، حدد حالات الاختبار الخاصة بك. فكر في السيناريوهات المختلفة التي تريد اختبارها واكتبها.

تشغيل اختباراتك: الآن، حان الوقت لترك Apidog يقوم بسحره! قم بتشغيل اختباراتك وانتظر النتائج.

تحليل نتائجك: بمجرد انتهاء اختباراتك، قم بتحليل نتائجك. ابحث عن أي أخطاء أو سلوك غير متوقع.

إذا وجدت أي مشكلات، قم بإصلاحها وتشغيل اختباراتك مرة أخرى. كرر هذه العملية حتى تكون راضيًا عن النتائج.
مع Apidog، يمكنك ضمان أن اختباراتك ليست صحيحة فحسب، بل موثقة جيدًا أيضًا.
أفضل الممارسات لاختبار وحدات FastAPI
احتفظ بالاختبارات معزولة
تأكد من أن كل اختبار مستقل ولا يعتمد على حالة الاختبارات الأخرى. تجعل هذه العزلة من السهل تصحيح الأخطاء وصيانة الاختبارات.
استخدم الإلكترونات
يمكن أن تساعد الإلكترونات في pytest في إعداد وتفكيك بيئات الاختبار. إليك مثال على إلكترون لتطبيق FastAPI الخاص بك:
import pytest
from fastapi.testclient import TestClient
from main import app
@pytest.fixture
def client():
return TestClient(app)
def test_with_fixture(client):
response = client.get("/")
assert response.status_code == 200
assert response.json() == {"Hello": "World"}
محاكاة التبعيات الخارجية
عندما تعتمد نقاط النهاية الخاصة بك على خدمات خارجية أو قواعد بيانات، استخدم المحاكاة لمحاكاة تلك التبعيات أثناء الاختبار. تساعدك هذه الطريقة في التركيز على اختبار منطق تطبيقك دون التأثر بالعوامل الخارجية.
خاتمة
لا يجب أن يكون اختبار تطبيقات FastAPI مزعجًا. من خلال اتباع الخطوات الموضحة في هذا الدليل، يمكنك ضمان أن واجهة برمجة التطبيقات الخاصة بك موثوقة وقابلة للصيانة وموثقة جيدًا. تذكر استخدام أدوات مثل Apidog لتسهيل عملية الاختبار الخاصة بك والحفاظ على تنظيم اختباراتك وعزلها.
الآن، حان دورك لوضع هذه النصائح موضع التنفيذ وجعل تطبيق FastAPI الخاص بك محصنًا. أتمنى لك اختباراً سعيداً!