В проекте rails, когда я пишу спецификацию какого-то контроллера, как это:
describe "POST 'create'" do
context "valid user" do
before(:all) {
@user_attributes = Factory.attributes_for(:user)
@user = Factory(:user, @user_attributes)
post :create, :user=>@user_attributes
}
specify { flash[:notice].should eq("Welcome")}
specify { response.should redirect_to(:action=> :index) }
end
end
Я получил несколько ошибок вроде этого:
Ошибка / Ошибка: post: create,: user => @ user_attributes
RuntimeError:
@ router is nil: убедитесь, что вы установили его в методе настройки вашего теста.
# ./spec/controllers/sessions_controller_spec.rb: 22 * 1013 *
# ./magazine_slave.rb:22:in `run '# magazine_slave_provider.rb: 17
Когда я изменяю до (: все) на до (:каждый), тест будет пройден.
Будет ли @routes создаваться после «before (: all)» и перед «before (: each)»