当前位置: 首页 > news >正文

Python mock与单元测试隔离

unittest.mock替换真实依赖。Mock/MagicMock对象。patch装饰器/上下文。side_effect异常/多返回值。return_value预设返回。call_count检查调用次数。assert_called_with断言参数。spec限定接口。autospec自动匹配签名。

from unittest.mock import Mock, patch, MagicMock

class ExternalAPI:
def fetch(self):
return "real data"

class Processor:
def __init__(self, api):
self.api = api

def process(self):
data = self.api.fetch()
return data.upper()

def test_processor():
mock_api = Mock()
mock_api.fetch.return_value = "mock data"
processor = Processor(mock_api)

result = processor.process()

assert result == "MOCK DATA"
mock_api.fetch.assert_called_once()

# patch装饰器
@patch('module.ExternalAPI.fetch')
def test_patch(mock_fetch):
mock_fetch.return_value = "patched"
api = ExternalAPI()
assert api.fetch() == "patched"

# side_effect
mock = Mock()
mock.side_effect = [1, 2, ValueError("error")]
print(mock()) # 1
print(mock()) # 2
mock() # 抛出ValueError

http://www.cnnetsun.cn/news/2945102.html

相关文章:

  • 网盘直链下载助手终极指南:一键获取九大网盘真实下载地址的技术解决方案
  • Hermes Agent:开源可进化的AI工作伙伴操作系统
  • E-commerce
  • 百考通AI技术:精准贴合学生写作痛点,打造“一站式”毕业论文服务体系
  • Steam创意工坊下载神器WorkshopDL:无需Steam账号轻松获取游戏模组
  • 编程哲学实践:从数据类型选择到代码简洁性的深度思考
  • AI Agent生产困境:7大核心Harness打造可靠智能体
  • 如何快速解决PCL2启动器内存分配显示异常问题
  • 零基础从哪些方面开始学习AI人工智能?
  • 40_Java日志框架使用指南
  • 订单状态的 if-else 地狱上线就崩——状态模式的工业级落地
  • 2026免费制作一寸证件照的软件大全,手把手保姆级制作教程
  • 匿名函数:没有显示函数名的函数
  • 智慧树智能学习助手:3步实现高效自动刷课秘籍
  • 阿里云Qoder:1天上线Agent背后的Serverless架构与商业化逻辑
  • 重构Java开发范式:多Agent智能体如何重塑AI时代工程开发
  • Qt Material主题库终极指南:打造现代化Material Design风格Qt界面
  • 避坑指南:SolidWorks API重命名文件时,你的工程图和旧文件去哪了?
  • AI写专著如何保证质量?实测工具一键生成20万字专著,低查重率!
  • 百度网盘解析工具:免费获取高速直连下载地址的终极指南
  • WarcraftHelper:魔兽争霸3终极优化指南,5分钟解锁144Hz流畅体验
  • 哔哩哔哩Linux客户端完整指南:在Linux系统上享受完整B站体验的终极解决方案
  • 金融风控机器学习实战:XGBoost+可解释特征工程落地指南
  • AMD Ryzen处理器深度调优指南:掌握SMU调试工具的完整实战教程
  • JAVA第25课——方法重载 Overload
  • 西安海鲜市场商家真实评测与避坑指南
  • 司替戊醇常见食欲减退体重下降需营养支持,严重肝损患者禁用
  • 【JAVA毕设源码分享】基于Spring Boot框架的自行车购物商城系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • Ubuntu录屏首选SimpleScreenRecorder实战指南
  • 2026年Claude Code终端安装故障排查:权限、WASM与企业网络全链路解析