В ror2ru многие советуют shoulda, наконец решил его попробовать.
Почитав документации тут и тут написал несколько тестов:
Тестируемый код:
module KeywordsHelper
MIN_LENGHT = 3
def get_keywords(full_text)
words = FrequencyHash.new
full_text.split(/\W/).each do |word|
words.occur(word) if word.length >= MIN_LENGHT
end
words.frequent_keys(2)
end
end
Cам тест:
require 'test_helper'
class KeywordsTest < Test::Unit::TestCase
include KeywordsHelper
context "get_keywords" do
setup do
end
should "return keywords that occur more than 2 times" do
assert_equal ['lazy'], get_keywords("quick lazy frog jumps over the lazy dog")
assert_equal ['frog', 'lazy'], get_keywords("quick lazy frog jumps over the lazy frog")
end
should "not return keywords with lenght smaller than 3 symbols" do
assert_equal [], get_keywords("do do do do")
end
should "return keywords sorted by frequency" do
assert_equal ["dog", "fox"], get_keywords("fox fox dog dog fox dog dog")
end
should "return keywords sorted alphabetically" do
assert_equal ["dog", "fox"], get_keywords("fox fox dog dog fox dog")
end
end
end
В итоге получилось достаточно не плохо, в отличии от стандартных тестов, появились контексты, не надо использовать underscore, плюс масса полезных хелперов.
Все это дело безболезненно заработало вместе с rails 2.3.2
Теперь планирую поюзать shoulda для тестирования контроллеров и проинтегрять с mocha. Если все пройдет гладко, то можно пробовать вводить его для некоторых проектов.