У меня есть приложение Rails, использующее AuthLogic, и я получил возможность использовать test удваивается для перехода к current_user. Для current_user существует ограниченный набор состояний, которые многократно используются во многих спецификациях контроллера.
Продолжая этот пример, представьте себе контроллеры с одинаковой двойной настройкой в каждом контексте. Вы можете видеть, что это много повторяется код. Каков предпочтительный способ применения СУХОГО для этого?
controller_1_spec.rb
require 'spec_helper'
describe Controller1 do
describe "GET 'index'" do
context "when user has state A" do
before(:each) do
user = double("User")
user.stub(:state).and_return("A")
user_session = double("UserSession")
user_session.stub(:user).and_return(user)
UserSession.stub(:find).and_return(user_session)
end
it "should test something for users with State A" do
get :index
end
it "should test something else for users with State A" do
get :index
end
end
context "when user has state B" do
before(:each) do
user = double("User")
user.stub(:state).and_return("B")
user_session = double("UserSession")
user_session.stub(:user).and_return(user)
UserSession.stub(:find).and_return(user_session)
end
it "should test something for users with State B" do
get :index
end
it "should test something else for users with State B" do
get :index
end
end
end
end
Является ли лучший способ просто добавить вспомогательные методы в spec_helper или есть что-то более удачное, например?