маршруты рельсов не определены в фильтре rspec before (: all)? - PullRequest
0 голосов
/ 05 августа 2011

Я настраиваю некоторые интеграционные тесты, используя capybara и rspec.

В одном тесте это работает:

describe "SIGN IN, POST post" do

  it "redirects to /posts after creating a new post" do
    visit new_artist_session_path
    fill_in 'Email', :with => 'vargas@vargas.com'
    fill_in 'Password', :with => 'password'
    click_link_or_button 'artist_submit'

    visit "/artists/vargas/posts"
    page.should have_content("Upload")
    click_button 'Upload'
    URI.parse(current_url).path.should == "/artists/vargas/posts"
  end
end    

Однако я хочу переместить часть "sign_in" в блок фильтра before (: all), чтобы я мог СУШИТЬ свои тесты. Однако, похоже, что в блоке before (: all) этот код выдает эту ошибку:

Failure/Error: visit new_artist_session_path
   NameError:
     undefined local variable or method `new_artist_session_path' for #<RSpec::Core::ExampleGroup::Nested_1:0x0000010399e388>

Похоже, что помощники по URL-адресам маршрутов недоступны из блока before? Как мне исправить это?

1 Ответ

0 голосов
/ 16 августа 2011

Похоже, что пути помощников доступны только между "it" и "do". Только не в методе before (: all). Поэтому я просто создал метод для входа и включил его в каждый тест, в котором он был необходим.

...