Я выполнил рефакторинг " Заменить метод на объект метода ", описанный Beck .
Теперь у меня есть класс с "run ()"метод и набор функций-членов, которые разбивают вычисления на более мелкие единицы.Как мне проверить эти функции-члены?
Моя первая идея состоит в том, что мои модульные тесты в основном являются копиями метода "run ()" (с разными инициализациями), но с утверждениями между каждым вызовом функций-членов дляпроверить состояние вычислений.
(я использую Python и модуль unittest.)
class Train:
def __init__(self, options, points):
self._options = options
self._points = points
# other initializations
def run(self):
self._setup_mappings_dict()
self._setup_train_and_estimation_sets()
if self._options.estimate_method == 'per_class':
self._setup_priors()
self._estimate_all_mappings()
self._save_mappings()
def _estimate_all_mappings():
# implementation, calls to methods in this class
#other method definitions
У меня определенно есть ожидания относительно того, какими должны быть состояния атрибутов-членов дои после вызова различных методов в рамках реализации метода run()
.Должен ли я делать утверждения об этих «частных» атрибутах?Я не знаю, как еще провести юнит-тестирование этих методов.
Другой вариант заключается в том, что мне действительно не следует их тестировать.