Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

235
Views
¿Cómo probar en FastAPI que el cliente llama al método correcto de punto final?

Estoy tratando de hacer una prueba unitaria que verifique si se llamó al método del punto final FastAPI deseado. Hizo mock.spy y durante las pruebas genera un error de que el método se llamó 0 veces. Aunque la salida incluso tiene un texto de verificación del método de punto final. ¿Cómo soluciono esto?

Mi prueba unitaria:

 client = TestClient(main.app) pytestmark = pytest.mark.unit @pytest.mark.unit def test_get_best_authors(mocker: MockFixture): mocker.spy(main, 'best_authors') client.get('/luchshie-avtori').json() assert main.best_authors.assert_called_once()

Mi código de punto final en main.py:

 @app.get("/luchshie-avtori") async def best_authors(): print('test ping') return requests.get('', params={'return': 'json'}).json()
over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Lo que sucede es que el decorador app.get obtiene el objeto real de su función y lo almacena internamente en su aplicación FastAPI.

Cuando se burla de best_authors , no le importará a FastAPI, ya que usará el objeto que había almacenado previamente.

Honestamente, no lo probaría de esta manera. Tendría una prueba unitaria donde pruebo el comportamiento de best_authors .

Lo que en este caso sería burlarse requests.get y asegurarse de que se llamara y que el resultado se devolviera correctamente.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!