ToB企服应用市场:ToB评测及商务社交产业平台

标题: 利用 pytest-mock 举行 Python 高级单元测试与模拟 [打印本页]

作者: 知者何南    时间: 3 天前
标题: 利用 pytest-mock 举行 Python 高级单元测试与模拟
<hr> 一、单元测试与模拟的意义

在软件开发中,单元测试用于验证代码逻辑的正确性。但实际项目中,代码常依靠外部服务(如数据库、API、文件系统)。直接测试这些依靠会导致:
模拟(Mocking) 技术通过创建假造对象替代真实依靠,使测试聚焦于当前单元的逻辑。
<hr> 二、环境安装

利用 pytest 和 pytest-mock 插件:
  1. pip install pytest pytest-mock
复制代码
<hr> 三、底子用法示例

场景:邮件发送服务

假设我们有一个邮件发送类 EmailSender:
  1. # email_sender.py
  2. class EmailSender:
  3.     def send(self, to, subject, body):
  4.         # 真实发送邮件的逻辑
  5.         return True
复制代码
测试时不应实际发送邮件。利用 pytest-mock 模拟 send 方法:
  1. # test_email_sender.py
  2. def test_send_email(mocker):
  3.     mock_send = mocker.patch("email_sender.EmailSender.send")
  4.     sender = EmailSender()
  5.    
  6.     result = sender.send("user@example.com", "Hello", "Test email")
  7.    
  8.     mock_send.assert_called_once_with("user@example.com", "Hell
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4