You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调试时如何使用pytest-mock?获取mocker实例传入测试函数

如何调试使用pytest-mock的单元测试函数?

我在使用pytest-mock的mocker特性编写单元测试,代码如下:

def my_unittest(mocker):
    m = mocker.spy(my_module, 'my_func')  
    
    calling_a_func_which_calls_my_func()
    
    # 检查是否被调用
    assert m.call_count == 1

现在想调试这个测试函数,不知道怎么获取mocker实例并传入。我试过这样写:

mocker = pytest_mock.mocker()

my_unittest(mocker)

但行不通,希望能解惑。


解决方法:

  • 直接用pytest命令运行测试:不需要手动创建mocker实例,pytest会自动将这个fixture注入到测试函数中。在终端执行:
    pytest your_test_file.py::my_unittest -xvs
    
    -xvs参数会显示详细的运行日志和调试信息,方便排查问题。
  • 手动创建mocker实例调试:如果要在脚本里手动调用测试函数,需要使用pytest-mock提供的MockFixture类来创建实例,而不是直接调用pytest_mock.mocker():
    from pytest_mock import MockFixture
    
    # 创建符合要求的mocker实例
    mocker = MockFixture()
    # 调用测试函数
    my_unittest(mocker)
    
    注意这种方式和pytest实际运行时的环境存在细微差异,仅适合简单调试场景。
  • 用IDE直接调试:PyCharm、VS Code等主流IDE都支持pytest测试的调试功能。在测试函数的关键代码行设置断点,然后选择"调试该测试"选项,IDE会自动处理mocker的注入,无需手动传参。

内容的提问来源于stack exchange,提问作者Marcus Therkildsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:50:18