1

私は自分のプロジェクトをテストしています。このメソッドを含む application_helper.rb についてです:

def delete_link table=""
        if current_user.role.name=="Admin" || current_user.role.name=="Pemilik"
            link_to 'Hapus', table, :confirm => 'Anda yakin?', :method => :delete
        end
    end

そのメソッドをテストしたいので、このように customers_controller_test.rb でこのテストを行います

require 'test_helper'

class CustomersControllerTest < ActionController::TestCase
  include Devise::TestHelpers
  include ApplicationHelper
  setup do
    @permission = Permission.create(:name=>"Customer")
    @role = Role.create(:name=>"Admin")
    @user = User.create(:name=>"Admin", :role_id => 1, :email => "email@email.email", :password => "123456")
    @role_permission = RolePermission.create(:role_id=>@role.id, :permission_id=>@permission.id, :access=>2)
    @customer = FactoryGirl.create(:customer)

    sign_in @user    
  end

  test "should link to delete" do
    puts assert sign_in @user
    current_user = @user
    puts current_user.name
    puts current_user.role.name
    assert delete_link(customer_path(@customer.id))
    puts "2"
  end
end

しかし、未定義のローカル変数またはメソッド「current_user」を取得しました。何か案が?アドバイスありがとうございます :)

4

1 に答える 1

4

deviseのcurrent_userメソッドはアプリケーション コントローラーで定義されるため、ヘルパーでは使用できません。ヘルパーメソッドのパラメーターを介してユーザーに提供すると、設定が完了します。

于 2012-06-13T08:46:24.427 に答える