ToB企服应用市场:ToB评测及商务社交产业平台
标题:
利用 pytest-mock 举行 Python 高级单元测试与模拟
[打印本页]
作者:
知者何南
时间:
3 天前
标题:
利用 pytest-mock 举行 Python 高级单元测试与模拟
<hr>
一、单元测试与模拟的意义
在软件开发中,单元测试用于验证代码逻辑的正确性。但实际项目中,代码常依靠外部服务(如数据库、API、文件系统)。直接测试这些依靠会导致:
测试速度变慢
测试效果不可控
产生副作用
(如真实发送邮件)
模拟(Mocking)
技术通过创建假造对象替代真实依靠,使测试聚焦于当前单元的逻辑。
<hr>
二、环境安装
利用 pytest 和 pytest-mock 插件:
pip install pytest pytest-mock
复制代码
<hr>
三、底子用法示例
场景:邮件发送服务
假设我们有一个邮件发送类 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
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4