在集成测试中导入辅助函数

时间:2017-08-31 21:09:11

标签: ruby-on-rails integration-testing

我有一个集成测试,我需要调用 log_in函数(在Session Helper中定义),其参数是在一个fixture中创建的用户

app/helpers/sessions_helper

module SessionsHelper
  def log_in(user)
    session[:user_id] = user.id
  end
  .
  .
  .
end

然后我有以下灯具test/fixtures/user.yml

johndoe:
  first_name: John
  last_name: Doe
  email: john@doe.com
  password_digest: <%= User.digest('password') %>

然后进行以下集成测试test/integration/user_navigation_test

require 'test_helper'

class UserNavigationTest < ActionDispatch::IntegrationTest

  def setup
    @user = users(:johndoe)
  end

  test "login with invalid information" do
    log_in @user
  end

end

当我运行测试时,出现以下错误。

ERROR["test_login_with_invalid_information", UserNavigationTest, 1.2090159619983751]
 test_login_with_invalid_information#UserNavigationTest (1.21s)
NoMethodError:         NoMethodError: undefined method `log_in' for #<UserNavigationTest:0x000000065cb3f8>
            test/integration/user_navigation_test.rb:10:in `block in <class:UserNavigationTest>'

我试图在test_helper中声明log_in函数,但它也没有工作;显然与配置有关。

我该如何处理?

0 个答案:

没有答案