Я пытаюсь найти лучший способ проверить find_communities
здесь, не прибегая к использованию здесь полиморфизма, чтобы победить выражение if
, уставившееся на меня.
class CommunityFinder
def initialize(filters={})
@filters = filters
end
def find_communities
return my_communities if @filters[:my_communities]
visible_communities
end
def my_communities
# [...]
end
def visibile_communities
# [...]
end
end
Я хорошо протестировал и my_communities
, и visible_communities
, но у меня есть опасения по поводу тестирования find_communities
.
- Я не хочу дублировать настройки теста для
my_communities
и visible_communities
, потому что, скорее всего, будет
- Я бы предпочел, чтобы API класса содержал все 3 открытых метода, потому что условия для
find_communities
никогда не изменятся.
- Я пишу это с надеждой, что в ближайшем будущем класс изменится кем-то, кроме меня, и что будет больше методов
Должен ли я:
- сделать
find_communities
жить в вызывающей
- сделать
find_communities
своей собственной стратегией
- дублировать тесты в
find_communities
- выберите свой 4-й вариант.