الدليل الشامل لاختبار الوحدات في FastAPI: اجعل واجهة برمجة التطبيقات الخاصة بك محصنة ضد الأخطاء

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

Amir Hassan

Amir Hassan

28 مايو 2025

الدليل الشامل لاختبار الوحدات في FastAPI: اجعل واجهة برمجة التطبيقات الخاصة بك محصنة ضد الأخطاء

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

button

لماذا يُعد اختبار الوحدات مهمًا

قبل أن نغوص في التفاصيل الدقيقة لاختبار الوحدات مع 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 مزيجًا من الأدوات لتوثيق واختبار نقاط النهاية الخاصة بك بسهولة. إليك كيف يمكنك استخدام Apidog مع تطبيق FastAPI الخاص بك.

button

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

تبويب الاختبار في Apidog

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

تعريف حالات الاختبار في 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 الخاص بك محصنًا. أتمنى لك اختباراً سعيداً!

ممارسة تصميم API في Apidog

اكتشف طريقة أسهل لبناء واستخدام واجهات برمجة التطبيقات