Кто-либо знает, как заставить rspec следовать за перенаправлением (в спецификации контроллера)? (например, тест/единица имеет follow_redirect!)
Я попробовал "follow_redirect!" и "follow_redirect", но только добираются
undefined method `follow_redirect!' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_1:0xb6df5294>
Например:
Когда я создаю учетную запись, страница перенаправляется к странице учетных записей, и моя новая учетная запись должна быть наверху списка.
it "should create an account" do
post :create, :name => "My New Account"
FOLLOW_REDIRECT!
response.code.should == "200"
accounts = assigns[:accounts]
accounts[0].name.should == "My New Account"
end
Но FOLLOW_REDIRECT! потребности, которые будут изменены на что-то, что на самом деле работает.
Если вы хотите протестировать перенаправление, вы перемещаетесь за пределы домена rspec-rails.
Вы можете использовать Webrat или другую платформу интеграционного тестирования, чтобы проверить это.
Самый простой способ решить эту проблему, не прибегая к интеграционному тестированию, вероятно, состоит в том, чтобы смоделировать метод, вызывающий перенаправление.
Я думаю, что это поведение по умолчанию для rspec-rails тестов контроллера, в том смысле, что вы можете установить ожидание на статус ответа и/или путь, и проверить успех.
For example:
it "should create an account" do
post :create
response.code.should == "302"
response.should redirect_to(accounts_path)
end