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

Введение в 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...