Fixtures autouse

Python เบื้องต้นสำหรับการทดสอบโค้ด

Alexander Levin

Data Scientist

อาร์กิวเมนต์ autouse

  • อาร์กิวเมนต์บูลีนเสริมของ fixture
  • ส่งผ่านไปยัง decorator ของ fixture ได้
  • เมื่อ autouse=True ฟังก์ชัน fixture จะทำงานโดยไม่ต้องรอการร้องขอ
  • ช่วยลดการเรียก fixture ที่ซ้ำซ้อน
Python เบื้องต้นสำหรับการทดสอบโค้ด

เมื่อใดควรใช้

ใช้เมื่อต้องการเตรียมหรือปรับแต่งสภาพแวดล้อม สำหรับทุกการทดสอบ

ตัวอย่างเช่น เมื่อต้องการให้ทุกการทดสอบ:

  • ใช้ข้อมูลชุดเดียวกัน
  • ใช้การเชื่อมต่อเดียวกัน (ข้อมูล, API ฯลฯ)
  • ใช้การตั้งค่าสภาพแวดล้อมเดียวกัน
  • มีการติดตาม, logging หรือ profiling

กรณีเหล่านี้ควรใช้ "autouse" argument

Python เบื้องต้นสำหรับการทดสอบโค้ด

ตัวอย่าง autouse

ตัวอย่าง fixture แบบ "autoused":

import pytest
import pandas as pd

# Autoused fixture
@pytest.fixture(autouse=True)
def set_pd_options():
    pd.set_option('display.max_columns', 5000)

# Test function
def test_pd_options():
    assert pd.get_option('display.max_columns') == 5000
Python เบื้องต้นสำหรับการทดสอบโค้ด

ตัวอย่าง autouse ที่ไม่ถูกต้อง

ตัวอย่าง fixture แบบ "autoused" ที่ ไม่ถูกต้อง:

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture(autouse=True)
def wrong_fixture():
    return [1,2,3,4,5]

# Test function
def test_type():
    assert type(wrong_fixture) == list

ตัวอย่าง fixture ที่ แก้ไขแล้ว:

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture
def correct_fixture():
    return [1,2,3,4,5]

# Test function
def test_type(correct_fixture):
    assert type(correct_fixture) == list
Python เบื้องต้นสำหรับการทดสอบโค้ด

ตัวอย่าง autouse: ผลลัพธ์

ผลลัพธ์ของตัวอย่าง:

ผลลัพธ์ตัวอย่าง autouse

Python เบื้องต้นสำหรับการทดสอบโค้ด

สรุป

  • ความหมายของ autouse: อาร์กิวเมนต์บูลีนเสริมของ fixture decorator
  • การใช้งาน: @pytest.fixture(autouse=True)
  • ข้อดี: ลดการเรียก fixture ที่ซ้ำซ้อน ทำให้โค้ดกระชับขึ้น
  • คุณสมบัติ: autouse=True ทำให้ฟังก์ชัน fixture ทำงานโดยอัตโนมัติโดยไม่ต้องรอการร้องขอ
  • เมื่อใดควรใช้: เมื่อต้องการเตรียมหรือปรับแต่งสภาพแวดล้อมสำหรับการทดสอบ
  • ตัวอย่างกรณีใช้งาน:
    • อ่านและเตรียมข้อมูลสำหรับทุกการทดสอบ
    • ตั้งค่าการเชื่อมต่อและพารามิเตอร์ของสภาพแวดล้อม
    • ใช้งาน monitor, logger หรือ profiler
Python เบื้องต้นสำหรับการทดสอบโค้ด

มาฝึกกันเถอะ!

Python เบื้องต้นสำหรับการทดสอบโค้ด

Preparing Video For Download...