Тест для проверки подклассов ruby ​​реализует метод стратегии - PullRequest
0 голосов
/ 12 сентября 2011

Я реализую простой шаблон стратегии (впервые в ruby) и хочу написать тест, чтобы убедиться, что каждый подкласс реализует метод критической стратегии.Итак, у меня есть что-то вроде этого:

class SearchTools::MusicSearcher
  def find_artists
    raise 'Abstract method called'
  end
end

class SearchTools::LastFMSearcher < MusicSearcher
  def find_artists(search_phrase)
    # get artists from lastfm's restful api
  end
end

class SearchTools::DatabaseSearcher < MusicSearcher
  def find_artists(search_phrase)
    # look in database for artists
  end
end

class SearchTools::Search

  def initialize(searcher)
    @searcher = searcher
  end

  def find_artists(search_phrase)
    @searcher.find_artists(search_phrase)
  end

end

В настоящее время я использую rspec, factory_girl и musta-matchers для моего тестирования.Кто-нибудь знает, как мне этого добиться?

Приветствия!

PS Я привык указывать буквальный «интерфейс» с C #, поэтому я ищу, чтобы посмотреть, что я могу использовать вruby для обеспечения общего интерфейса для каждой стратегии ...

1 Ответ

0 голосов
/ 03 августа 2013

Я бы ожидал, что это будет что-то вроде

it "should respond to find_artists method" do
  o = SearchTools::LastFMSearcher.new
  o.respond_to?(:find_artists).should be_true
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...