single-responsibility1

Single responsibility principle. Практическое применение

S-принцип просит нас, чтобы класс выполнял одну единственную возложенную на него задачу.
Unit-тестирование просит нас не тестировать методы, а тестировать интерфейсы классов.

Эти два правила подводят нас к пониманию дизайна, упрощающего принятие решение при разработке. Если у класса будет только одна задача, тогда у него будет минимальное количество публичных методов. А часто — всего один. И только его и надо будет оттестировать. Приватные методы тестируются сразу при тестировании функционала публичного метода.

Пример. Допустим, есть класс-клиент к внешнему API и у него есть парочка приватных методов, которые строят URL в соответствии с текущем состоянием сбора данных. Перед нами становится задача протестировать алгоритм построения URL, но методы в классе клиента приватные, а приватные методы тестировать нельзя. Публичными им быть не положено. Значит нам нужно вывести логику построения URL в отдельный класс и теперь мы можем протестировать его публичный метод. Красиво и понятно!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *