【发布时间】:2017-04-14 15:32:29
【问题描述】:
我很难弄清楚如何测试这个助手,因为current_group 没有在我的测试用例中定义,我不确定如何存根它。
module Admin
module EmployeesHelper
def upload_access
policy(current_group).can_bulk_create_employees?
end
def dashboard_params
download_employee_url = upload_access ?
download_admin_group_employees_import_csv_index_path(current_group) : nil
upload_employee_url = upload_access ?
admin_group_employees_import_csv_index_path(current_group) : nil
make_hash(upload_employee_url, download_employee_url)
end
private
def make_hash(upload_url, download_url)
{
employees: @employees,
addEmployeeUrl: new_admin_group_employee_path(current_group),
terminated_employees: @terminated_employees,
new_employees: @new_employees,
test_employees: @test_employees,
group_id: current_group.id,
downloadEmployeeUrl: download_url,
uploadEmployeeUrl: upload_url
}
end
end
end
这是我的测试的样子,但它失败了,因为 current_group 没有定义。
require 'rails_helper'
describe Admin::EmployeesHelper do
let!(:group) { create(:group) }
before do
# This stub doesn't work because helper doesn't implement current_group
allow(helper).to receive(:current_group).and_return(group)
end
it 'returns correct dashboard props' do
allow(helper).to receive(:upload_access).and_return(true)
props = helper.dashboard_params
expect(props).values_at(:downloadEmployeeUrl, :uploadEmployeeUrl).should_not include(nil)
end
end
【问题讨论】:
标签: ruby-on-rails ruby rspec