การเขียน Functional Test แบบ Manual

FastAPI เบื้องต้น

Matt Eckerle

Software and Data Engineering Leader

Functional Tests คืออะไร?

System Tests

  • จุดเน้น: การทำงานของระบบแบบแยกส่วน
  • จุดประสงค์: ตรวจสอบฟังก์ชันของระบบ
  • ขอบเขต: Endpoint
  • สภาพแวดล้อม: Python env ที่มีแอปทำงานอยู่
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

Functional Tests

  • จุดเน้น: ระบบแบบบูรณาการ
  • จุดประสงค์: ตรวจสอบระบบโดยรวม
  • ขอบเขต: แอปพลิเคชัน
  • สภาพแวดล้อม: Python env ที่มีแอปทำงานอยู่
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 เบื้องต้น

Test Workflows

แผนภาพแสดงตัวอย่าง Workflow ของการทดสอบที่สำเร็จและล้มเหลว

FastAPI เบื้องต้น

ตัวอย่าง Workflow ของ Functional Test

Workflow ที่สำเร็จ

  • สร้าง แล้วอ่าน
  • สร้าง แล้วอัปเดต
  • สร้าง แล้วลบ
  • ...

Workflow ที่ล้มเหลว

  • อ่านโดยไม่สร้าง
  • อัปเดตหลังจากลบ
  • ลบโดยไม่สร้าง
  • ...
FastAPI เบื้องต้น

Functional Test Scripts

  • นอก Test Framework — "Manual Tests"
  • ใช้ 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
  • Workflow สร้างขึ้นตาม State ของแอปที่รู้จัก
FastAPI เบื้องต้น

มาฝึกกันเลย!

FastAPI เบื้องต้น

Preparing Video For Download...