Atunci când testele tale trebuie să execute apeluri asincrone către baza de date sau să utilizeze generatoare de date asincrone în corpul testului, utilizarea unui client sincron poate genera conflicte de event loop.
Soluția oficială modernă este utilizarea httpx.AsyncClient împreună cu ASGITransport. Toate apelurile devin asincrone (await ac.get("/...")), permițând rularea testelor direct în bucla nativă de evenimente.
Exemplu: Test asincron cu pytest-asyncio și AsyncClient
import pytest
from httpx import AsyncClient, ASGITransport
from main import app
@pytest.mark.asyncio
async def test_async_endpoint():
transport = ASGITransport(app=app)
async with AsyncClient(transport=transport, base_url="http://testserver") as ac:
response = await ac.get("/api/v1/users")
assert response.status_code == 200
Întrebări & Exemple de Cod:
AsyncClient pentru Teste Asincrone (HTTPX)Ai o nelămurire despre utilizarea comenzii
AsyncClient pentru Teste Asincrone (HTTPX)sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.