【问题标题】:rails routes undefined in rspec before(:all) filter?在rspec之前(:all)过滤器中未定义的rails路由?
【发布时间】:2011-08-04 21:27:21
【问题描述】:

我正在使用 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>

似乎在 before 块中没有可用的路由 url 助手?我该如何补救?

【问题讨论】:

    标签: ruby-on-rails rspec routes capybara


    【解决方案1】:

    似乎路径助手仅在“it”和“do”之间可用。只是不在 before(:all) 方法中。所以我最终只是创建了一个登录方法,并将其包含在每个需要它的测试中。

    【讨论】:

      猜你喜欢
      • 2014-12-26
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2014-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多