使用 pytest 進行單元測試

Python 測試入門

Alexander Levin

Data Scientist

什麼是單元測試

Unit(單元)-可測試的最小可運作部分。

  • 單元例子:函式、方法、類別、模組等。

$$

Unit testing(單元測試)-一種軟體測試方法。

  • 可用來檢驗單元是否正確。

$$

Test case(測試案例)-一組單元輸入與預期輸出。

  • 測試案例聚焦於問題的一個面向。
Python 測試入門

為何使用單元測試

Unit tests(單元測試)-是檢驗軟體「全貌」的基礎。

適用情境

  • 發現臭蟲時
  • 開發過程中
  • 變更實作後
Python 測試入門

如何建立單元測試

流程:

  1. 決定要測哪些單元
  2. 定義測試案例(需要創意):
    • 「可能的單元輸出有哪些?」
    • 「可以怎麼使用這個單元?」
    • 「在上述情境下應如何表現?」
  3. 為每個測試案例撰寫程式碼
  4. 執行測試並分析結果
Python 測試入門

建立單元測試:範例

待測單元:

# Function for a sum of elements
def sum_of_arr(array:list) -> int:
    return sum(array)

測試案例

  1. 輸入為數字清單(如預期)-應回傳 sum
  2. 輸入為空清單-應回傳 0
  3. 輸入為只含一個 number 的清單-應回傳該 number
Python 測試入門

建立單元測試:程式碼

# Test Case 1: regular array
def test_regular():
    assert sum_of_arr([1, 2, 3]) == 6
    assert sum_of_arr([100, 150]) == 250
# Test Case 2: empty list
def test_empty():
    assert sum_of_arr([]) == 0
# Test Case 3: one number
def test_one_number():
    assert sum_of_arr([10]) == 10
    assert sum_of_arr([0]) == 0
Python 測試入門

重點整理

Unit test(單元測試)-用來確認單元是否如預期運作的測試。

Test case(測試案例)-以輸入與輸出摘要問題的一個面向。

適用情境

  • 發現臭蟲時
  • 開發過程中
  • 變更實作後

定義測試案例-需要創意。

Python 測試入門

一起來練習吧!

Python 測試入門

Preparing Video For Download...