使用 pytest 进行单元测试

Python 测试入门

Alexander Levin

Data Scientist

什么是单元测试

单元:可被测试的最小工作部分。

  • 单元示例:函数、方法、类、模块等。

$$

单元测试:一种软件测试方法。

  • 能细致检查单元的正确性。

$$

测试用例:一组单元输入及其期望输出。

  • 测试用例概括问题的特定部分。
Python 测试入门

为何使用单元测试

单元测试:为测试软件"全局图景"打基础。

适用场景

  • 发现缺陷时
  • 开发过程中
  • 更改实现后
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 测试入门

小结

单元测试:验证单个单元按预期工作。

测试用例:概括问题某一部分的输入与输出。

适用场景

  • 发现缺陷时
  • 开发过程中
  • 更改实现后

定义测试用例:需要创造力。

Python 测试入门

¡Vamos a practicar!

Python 测试入门

Preparing Video For Download...