python - 在Python中测试抽象类调用父方法
问题描述
我目前正在重构功能,最终得到了这个抽象
我有这门课
class AbstractClassA(SomeOtherAbstractClass):
@abstractmethod
def some_abstract_method(self):
pass
def my_method(self)):
service.some_method
class AbstractClassB(AbstractClassA):
@abstractmethod
def another_abstract_method(self):
pass
def some_abstract_method(self):
some_implementation
def my_method(self):
super().my_method()
do_any_other_stuff
我需要测试是否AbstractClassB.my_method
调用super().my_method()
。
我试图通过创建一些ImplementationClass
继承自然AbstractClassB
后模拟AbstractClassA.my_method
并检查它是否被调用但它不起作用来测试它......
class AbstractClassBImplementation(AbstractClassB):
def some_abstract_method(self):
calls_service()
class TestAbstractClassB(TestCase):
@patch('module.submodule.AbstractClassA.my_method')
def test_class_b_calls_class_a_my_method(self, my_method_mock):
instance = AbstractClassBImplementation()
instance.my_method()
self.assertTrue(my_method_mock.called)
有人知道如何测试这个吗?
解决方案
推荐阅读
- javascript - 将用户 UID 发送到 Firebase 云功能是否安全
- vb.net - 使图表控件的网格在偶数小时开始
- python - 从格式不同的字段中提取数据的最佳 XPath 实践
- azure-devops - 将更改推送到 PR 时取消 Azure Devops PR 部署
- r - 向透视 3D 绘图添加点 - 在表面后面隐藏或模糊点
- r - 如何仅选择虚拟变量列?
- java - Payara Docker 数据源连接问题
- vb.net - 工作区在 VB.net 中显示不正确
- javascript - Multer Node.js 的文件上传 MIME 类型问题
- tensorflow - 限制屏蔽区域中的卷积计算