单元测试MixIn类,该类正在其方法之一中访问另一个类方法

时间:2019-02-16 19:12:32

标签: python design-patterns

我有两个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类编写单元测试用例,该类正在从另一个类调用方法?

1 个答案:

答案 0 :(得分:2)

@chepner是正确的;您的单元测试有问题,因为您的类未完全封装。 FirstMixin应该只调用直接可用的方法。不知道程序的更大体系结构就很难说,但是一个解决方案可能是在method_of_subclass上添加一个FirstMixin来充当抽象方法,尽管这将导致相当复杂的设计。一个更好的主意可能是问自己,如果FirstMixin需要调用SecondMixin中定义的方法,为什么需要两个单独的mixins