Как проверить перенаправление в sinatra с помощью rspec? - PullRequest
15 голосов
/ 15 сентября 2011

Я пытаюсь проверить перенаправление на домашней странице моего приложения sinatra (точнее, приложения padrino) в rspec.Я нашел redirect_to, но, похоже, это только в rspec-rails.Как вы проверяете это в Синатре?

Так что, в принципе, я бы хотел что-то вроде этого:

  it "Homepage should redirect to locations#index" do
    get "/"
    last_response.should be_redirect   # This works, but I want it to be more specific
    # last_response.should redirect_to('/locations') # Only works for rspec-rails
  end

Ответы [ 3 ]

22 голосов
/ 15 сентября 2011

Попробуйте это (не проверено):

it "Homepage should redirect to locations#index" do
  get "/"
  last_response.should be_redirect   # This works, but I want it to be more specific
  follow_redirect!
  last_request.url.should == 'http://example.org/locations'
end
15 голосов
/ 25 апреля 2012

Более прямо вы можете просто использовать last_response.location.

it "Homepage should redirect to locations#index" do
  get "/"
  last_response.should be_redirect
  last_response.location.should include '/locations'
end
1 голос
/ 15 октября 2014

В новом синтаксисе expect оно должно быть:

it "Homepage should redirect to locations#index" do
  get "/"
  expect(last_response).to be_redirect   # This works, but I want it to be more specific
  follow_redirect!
  expect(last_request.url).to eql 'http://example.org/locations'
end
...