0
我正在實施一個簡單的策略模式(第一次在ruby中),我想寫一個測試以確保每個子類都實現關鍵策略方法。所以,我有這樣的事情:測試以驗證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和shoulda-matchers進行測試。任何人都知道我如何實現這一目標
乾杯!
P.S.我習慣於用C#指定一個字面的'接口',所以這就是爲什麼我要看看我可以在Ruby中使用什麼來爲每個策略實施一個通用接口...
使用'respond_to?'? –
感謝Dave的迴應。 respond_to看起來不錯......但如何將該測試應用到我的抽象MusicSearcher的任何子類? – Stu
http://snippets.dzone.com/posts/show/2992 –