Rspec - направляющие - Как следовать за перенаправлением

Кто-либо знает, как заставить 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! потребности, которые будут изменены на что-то, что на самом деле работает.

40
задан Jonas Söderström 17 April 2013 в 08:13
поделиться

2 ответа

Если вы хотите протестировать перенаправление, вы перемещаетесь за пределы домена rspec-rails.

Вы можете использовать Webrat или другую платформу интеграционного тестирования, чтобы проверить это.

Самый простой способ решить эту проблему, не прибегая к интеграционному тестированию, вероятно, состоит в том, чтобы смоделировать метод, вызывающий перенаправление.

19
ответ дан 27 November 2019 в 01:11
поделиться

Я думаю, что это поведение по умолчанию для rspec-rails тестов контроллера, в том смысле, что вы можете установить ожидание на статус ответа и/или путь, и проверить успех.

For example:

it "should create an account" do
  post :create
  response.code.should == "302"
  response.should redirect_to(accounts_path)
end
65
ответ дан 27 November 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: