Python 调用一些函数的单元测试脚本

Python Unit testing script that calls some functions

我最终在 python 中测试了一个“自动化”脚本,基本上只是一个调用一堆函数的脚本。

我有 3 个 classes:class_A、class_B、class_C,每个 class 都有一个“运行”函数

Script.py 正在调用 class_A.run()、class_B.run、class_C.run()

我的问题是,是否有一种单元测试方法 Script.py 仅断言我们是否调用了 3 个 运行 函数,而实际上 运行ning(继续通过他们的代码)他们。

我尝试修补 class 并且我可以获得正确的断言,但是 运行 函数仍然是“运行ning”它们的代码。

是否有可能以某种方式模拟 class_A.run() 并断言是否被调用?

您可以使用 Mock patch。 MockClass 将替换您的 module.class_A 和 运行-method:

from unittest.mock import patch

@patch('module.class_A', 'run')
def test(MockClass):
    Script.py  # your testfunction 
    assert MockClass.run.called  # check if module.Class_A.run() was called