我有两个Mixin类。 Mixin类中的一种方法是从另一个类中调用一种方法。当我通过继承这两个Mixins创建子类时,一切工作正常。
class FirstMixin(object):
def method(self):
some logic here
self.method_of_sub_class()
class SecondMixin(object):
def method_of_sub_class()
pass
class BaseClass(SecondMixin, FirstMixin):
pass
当我为FirstMixin类编写单元测试用例时,由于调用method_of_sub_class
而导致失败。如何为第一个MixIn类编写单元测试用例,该类正在从另一个类调用方法?
答案 0 :(得分:2)
@chepner是正确的;您的单元测试有问题,因为您的类未完全封装。 FirstMixin应该只调用直接可用的方法。不知道程序的更大体系结构就很难说,但是一个解决方案可能是在method_of_subclass
上添加一个FirstMixin
来充当抽象方法,尽管这将导致相当复杂的设计。一个更好的主意可能是问自己,如果FirstMixin需要调用SecondMixin中定义的方法,为什么需要两个单独的mixins