Escrevendo um teste funcional manual

Introdução ao FastAPI

Matt Eckerle

Software and Data Engineering Leader

O que são testes funcionais?

Testes de sistema

  • Foco: Operações do sistema isoladas
  • Objetivo: Validar a função do sistema
  • Escopo: Endpoint
  • Ambiente: Ambiente Python com o app em execução
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Testes funcionais

  • Foco: Sistema integrado
  • Objetivo: Validar o sistema como um todo
  • Escopo: Aplicação
  • Ambiente: Ambiente Python com o app em execução
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
Introdução ao FastAPI

Fluxos de teste

Diagramas mostrando exemplos de fluxos de teste com sucesso e com falha

Introdução ao FastAPI

Exemplos de fluxos de teste funcional

Fluxos bem-sucedidos

  • Criar e depois ler
  • Criar e depois atualizar
  • Criar e depois deletar
  • ...

Fluxos com falha

  • Ler sem criar
  • Atualizar após deletar
  • Deletar sem criar
  • ...
Introdução ao FastAPI

Scripts de teste funcional

  • Fora do framework de testes — "Testes manuais"
  • Use 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
  • Fluxos baseados em um estado conhecido da aplicação
Introdução ao FastAPI

Vamos praticar!

Introdução ao FastAPI

Preparing Video For Download...