Написання ручового функціонального тесту

Вступ до FastAPI

Matt Eckerle

Software and Data Engineering Leader

Що таке функціональні тести?

Системні тести

  • Фокус: ізольовані операції системи
  • Мета: перевірка функцій системи
  • Охоплення: кінцева точка
  • Середовище: Python із запущеним застосунком
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Функціональні тести

  • Фокус: інтегрована система
  • Мета: перевірка роботи системи загалом
  • Охоплення: застосунок
  • Середовище: Python із запущеним застосунком
def test_delete_then_read():
    response = client.delete("/items/1")
    assert response.status_code == 200
    response = client.get("/items/1")
    assert response.status_code == 404
Вступ до FastAPI

Робочі процеси тестів

Схеми з прикладами успішних і помилкових робочих процесів тестів

Вступ до FastAPI

Приклади робочих процесів функціональних тестів

Успішні процеси

  • Створити, потім прочитати
  • Створити, потім оновити
  • Створити, потім видалити
  • ...

Невдалі процеси

  • Читання без створення
  • Оновлення після видалення
  • Видалення без створення
  • ...
Вступ до FastAPI

Скрипти функціональних тестів

  • Поза фреймворком тестів — «ручні тести»
  • Використовуйте requests
import requests
ENDPOINT = "http://localhost:8000/items"
# Create item "rock"
r = requests.post(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
# Get item rock
r = requests.get(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
  • Процеси будуються для відомого стану застосунку
Вступ до FastAPI

Перейдемо до практики!

Вступ до FastAPI

Preparing Video For Download...