python - 如何在 Python 中模拟继承的协作方法
问题描述
我有一个类似的设置。
class A:
def send_it(some_data):
data = {}
....fill data
send('url',data)
class B(A):
def do_real_work():
... do stuff
self.send_it(some_data)`
我的目标是测试 B.do_real_work()。
我想做的是使用自定义实现来模拟 b.send_it() 方法,该实现允许我将数据对象分配给某个全局或实例变量,以便对其进行检查。
在实际测试 do_real_work() 方法时,我无法弄清楚如何模拟方法 (send_it())。
解决方案
您可以将模拟应用到被调用的方法中。
from unittest.mock import MagicMock
b = B()
b.send_it = MagicMock()
b.do_real_work() # It calls MagicMock() instead of A.send_it()
推荐阅读
- mysql - MySQL 多个触发器 - 在一个触发器后结束代码
- netbeans - NetBeans IDE 8.2 - 找不到兼容的 JDK
- android-studio - Android Studio 不显示 gradle.properties 文件
- node.js - 路径未定义,
- php - 如何查看mysql是否替换或插入我的查询
- python - Keras 中的 LSTM:顺序 API 和功能 API 之间的参数数量不同
- python - 安装 tkinter 时没有模块名称 _tkinter 错误
- sql - 将 sql 查询更改为在 JOIN 中多次返回相同的值
- sql - .Net Core Serilog SQL 日志到自定义列
- xamarin - 无法获取当前位置 Xamarin.Forms