rails测试无法识别路径

时间:2013-11-22 15:25:43

标签: ruby-on-rails ruby testing capybara

我正在使用

测试test/models/user_test.rb
test "should validate login" do
    visit new_user_session
    fill_in "email", with: 'test@test.com'
    fill_in "password", with: 'testtest'
    click_button  "Sign in"
    assert_equal some_url, current_path
  end

当我运行ruby -Itest test/models/user_test.rb时,收到此错误消息

UserTest#test_should_validate_login:
NameError: undefined local variable or method `new_user_session' for #<UserTest:0x007fcbd8e98378>
    test/models/user_test.rb:22:in `block in <class:UserTest>'

如果我将new_user_session更改为path提供的任何其他rake routes,我会收到相同的消息,即undefined local variable or method路径'。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

看起来你正在进行集成测试,但是在模型测试中编写它。模型测试不会加载路由和其他细节供您使用。

答案 1 :(得分:0)

您需要将pathurl附加到new_user_session的末尾以获取实际路径:

  test "should validate login" do
    visit new_user_session_path
    fill_in "email", with: 'test@test.com'
    fill_in "password", with: 'testtest'
    click_button  "Sign in"
    assert_equal some_url, current_path
  end

有关详细信息,请参阅Rails路由指南的the path and url helpers部分。