fixtures 簡介

Python 測試入門

Alexander Levin

Data Scientist

什麼是 fixture

  • Fixture:可用於執行測試的已備妥環境
  • Fixture 設定:準備環境並配置一個或多個測試所需資源的流程

想像準備去野餐:

  1. 邀朋友、備餐點(這就是 fixtures 要做的)
  2. 盡情玩樂!
  3. 收拾善後
Python 測試入門

為何需要 fixture

Fixtures 的幫助:

  • 簡化測試前置作業
  • 將環境準備與測試本身隔離
  • 讓 fixture 程式碼可重複使用
Python 測試入門

Fixture 範例:概要

假設我們有:

  • 一個 Python list 變數,名為 data
  • data = [0, 1, 1, 2, 3, 5, 8, 13, 21]

而我們想測試:

  • 它包含 9 個元素
  • 它包含元素 521
Python 測試入門

Fixture 範例:程式碼

import pytest

# Fixture decorator
@pytest.fixture
# Fixture for data initialization
def data():
    return [0, 1, 1, 2, 3, 5, 8, 13, 21]

def test_list(data):
    assert len(data) == 9
    assert 5 in data
    assert 21 in data
Python 測試入門

Fixture 範例:輸出

此範例的輸出: output of the fixture example

Python 測試入門

如何使用 fixtures

要使用 fixture,請依下列步驟:

  1. 準備軟體與測試
  2. 找出「環境準備」
  3. 建立 fixture:
    • 宣告 @pytest.fixture 裝飾器
    • 實作 fixture 函式
  4. 使用已建立的 fixture:
    • 將 fixture 名稱傳入測試函式
    • 執行測試!
Python 測試入門

總結

本節重點(testing fixtures):

  • Fixture:可用於執行測試的已備妥環境
  • 使用 fixtures 可讓前置作業更簡單,並與測試函式隔離
  • 簡單例子:準備一個 Python list
  • 以宣告 @pytest.fixture 定義 pytest fixture,
    • 接著撰寫 fixture 函式
  • 在測試中以變數名引用 fixture
Python 測試入門

一起來練習吧!

Python 測試入門

Preparing Video For Download...