У меня был такой же вопрос :) Rspec используется для модульного тестирования. Это означает, что вы тестируете свои модели, контроллеры и, возможно, даже представления, чтобы увидеть, работают ли они так, как вы хотели.
Обратите внимание, что тесты не навязывают поведение, они просто тестируют его. Взгляните на этот пример:
describe "A new User" do
let(:user) { Factory(:user) }
it "is not valid if first_class is not either [Magician, Fighter, Ranger]" do
user.first_class = 'warrior'
user.should_not be_valid
end
end
Это спецификация модели, которая использует Фабрику (проверьте заводскую девушку для получения дополнительной информации) и определяет, что если first_class не является одним из 3 выше и является чем-то вроде "воина", тест должен провалиться. После создания этого теста вы добавляете в модель подтверждение:
validates :first_class, :presence => true, :inclusion => %w(Fighter Ranger Magician)
А теперь тест проходит:)
После проверки rspec, вы должны взглянуть на Cucumber, который на самом деле является драгоценностью для тестирования сценариев. Там вы указываете целые сценарии, которые сопоставляются с регулярными выражениями. Посмотрите очень хороший Railscast от railscasts.com для очень хорошего введения в огурец.
Надеюсь, что это даст вам некоторое представление:)