加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-4 – 使用Minitest测试辅助方法

发布时间:2020-12-16 21:38:03 所属栏目:百科 来源:网络整理
导读:我想使用Minitest( minitest-rails )测试辅助方法 – 但辅助方法取决于 current_user ,a Devise helper method available to controllers and view. 应用程序/佣工/ application_helper.rb def user_is_admin? # want to test current_user current_user.adm
我想使用Minitest( minitest-rails)测试辅助方法 – 但辅助方法取决于 current_user,a Devise helper method available to controllers and view.

应用程序/佣工/ application_helper.rb

def user_is_admin?                           # want to test
  current_user && current_user.admin?
end

测试/助理/ application_helper_test.rb

require 'test_helper'

class ApplicationHelperTest < ActionView::TestCase
  test 'user is admin method' do
    assert user_is_admin?                # but current_user is undefined
  end
end

请注意,我能够测试不依赖于current_user的其他帮助器方法.

解决方法

在Rails中测试帮助程序时,帮助程序包含在测试对象中. (测试对象是ActionView :: TestCase的一个实例.)你的帮助者的user_is_admin?方法期望一个名为current_user的方法也存在.在控制器和view_context对象上,此方法由Devise提供,但它不在您的测试对象上.我们来添加它:
require 'test_helper'

class ApplicationHelperTest < ActionView::TestCase
  def current_user
    users :default
  end

  test 'user is admin method' do
    assert user_is_admin?
  end
end

current_user返回的对象取决于您.在这里,我们返回了一个数据夹具.您可以在此处返回任何在测试环境中有意义的对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读