python - 如何在 Python 中模拟继承的协作方法

标签 python unit-testing mocking

我有一个与此类似的设置。

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()

关于python - 如何在 Python 中模拟继承的协作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232950/

相关文章:

python - 鹡鸰 block : accessing context and request in overridden get_context

python - 向嵌套列表的字典中插入一个值

python - 对日期进行排序并分配排名 - python

c# - 模拟 SignInManager

java - 为什么 Mockito 模拟在没有注释的情况下在我的测试中工作

testing - 试图在 Flask-SQLAlchemy 中模拟模型的问题

Python 将字符串赋值给字典后转成元组

C++ - Google 测试 - 如何并行运行不同目录中的所有测试?

ruby-on-rails - 如何出于测试目的禁用缓存清扫器

c# - 在 asp.net mvc5 中针对 asp.net 身份模拟 IUserStore