利用 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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]