首页 前端知识 使用 pytest-mock 进行 Python 高级单元测试与模拟

使用 pytest-mock 进行 Python 高级单元测试与模拟

2025-02-26 11:02:20 前端知识 前端哥 825 819 我要收藏

一、单元测试与模拟的意义

在软件开发中,单元测试用于验证代码逻辑的正确性。但实际项目中,代码常依赖外部服务(如数据库、API、文件系统)。直接测试这些依赖会导致:

  1. 测试速度变慢
  2. 测试结果不可控
  3. 产生副作用(如真实发送邮件)

模拟(Mocking) 技术通过创建虚拟对象替代真实依赖,使测试聚焦于当前单元的逻辑。


二、环境安装

使用 pytestpytest-mock 插件:

pip install pytest pytest-mock

三、基础用法示例

场景:邮件发送服务

假设我们有一个邮件发送类 EmailSender

# email_sender.py
class EmailSender:
    def send(self, to, subject, body):
        # 真实发送邮件的逻辑
        return True

测试时不应实际发送邮件。使用 pytest-mock 模拟 send 方法:

# test_email_sender.py
def test_send_email(mocker):
    mock_send = mocker.patch("email_sender.EmailSender.send")
    sender = EmailSender()
    
    result = sender.send("user@example.com", "Hello", "Test email")
    
    mock_send.assert_called_once_with("user@example.com", "Hell
转载请注明出处或者链接地址:https://www.qianduange.cn//article/21561.html
标签
pytest
评论
发布的文章

库制作与原理

2025-02-26 11:02:28

仿12306项目(1)

2025-02-26 11:02:27

2.25 链表 2 新建链表 82

2025-02-26 11:02:26

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!