модульное тестирование класса MixIn, который обращается к другому методу класса в одном из его методов - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть два класса 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 голосов
/ 16 февраля 2019

@ chepner правильно;у вас проблемы с тестированием юнитов, потому что ваш класс не полностью инкапсулирован.FirstMixin должен вызывать только те методы, которые доступны ему напрямую.Трудно сказать, не зная более крупную архитектуру вашей программы, но одним из решений может быть добавление сквозного method_of_subclass к FirstMixin в качестве абстрактного метода, хотя это приведет к довольно сложному дизайну.Лучше было бы спросить себя, зачем вам два отдельных миксина, если FirstMixin должен вызывать методы, определенные в SecondMixin

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...