>source

믹스 인 수업이 두 개 있습니다. Mixin 클래스의 메소드 중 하나는 다른 클래스에서 메소드를 호출하는 것입니다. 이 두 믹스 인에서 상속하여 서브 클래스를 만들 때 모든 것이 잘 작동합니다.

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

    @chepner가 정확합니다. 수업이 완전히 캡슐화되지 않았기 때문에 단위 테스트에 문제가 있습니다. FirstMixin은 직접 사용할 수있는 메소드 만 호출해야합니다. 프로그램의 더 큰 아키텍처를 모르면 말하기가 어렵지만 한 가지 해결책은 패스 스루 method_of_subclass 를 추가하는 것입니다   FirstMixin 로  다소 복잡한 디자인으로 이어지지 만 추상적 인 방법으로 작동합니다. FirstMixin이 SecondMixin에 정의 된 메소드를 호출해야하는 경우 두 개의 개별 믹스 인이 필요한 이유를 스스로 묻는 것이 더 좋습니다.

관련 자료

  • 이전 html - Reactive Forms를 사용하여 formControlName, FormBuilder로 태그 연결
  • 다음 java - 하위 모듈이있을 때 기본 pomxml이 배포되지 않음