python - 如何在单元测试中修补整个类
问题描述
在单元测试中,我习惯于写作
def patched_function():
...
@patch("package.module.function", new=patched_function)
class TestExample:
然后,每当我正在测试的代码调用 package.module.function 时,它都会调用修补函数。但是,如果我想修补整个班级怎么办?我知道 Mock,但这行不通,因为我正在测试的代码正在实例化该类。我无法控制它。我想我可以这样做:
def PatchedClass():
def __init__(self):
# patched constructor
def method(self):
# patched method
@patch("package.module.Class", new=PatchedClass)
class TestExample:
我认为这将用我的修补类替换所有实例化给定类的调用。但它似乎没有做任何事情。我怎样才能修补整个班级?
解决方案
推荐阅读
- assembly - 尝试在 MASM32 (LNK1120) 中做一个简单的程序
- php - 为什么我没有得到相同的结果?
- c# - 在所有用户控件中将任何字符全局转换为大写
- data-structures - 如何在一个特征的函数中发送不同的结构?
- java - 如何在 mule anypoint studio 中处理来自 gmail 服务器的 pop3 电子邮件
- r - 在 R 中查找和替换某些值
- google-apps-script - 在 Google 表格中,有没有办法每次都获取在同一个单元格中输入的数据总和?
- reactjs - 无法使用 REDUX 将数据从输入传递到 div
- swift - 线程 1:信号 SIGABRT,无法识别的选择器发送到实例
- android-studio - 如何格式化一个巨大的文本视图?