如何使用RSpec测试覆盖ActiveAdmin资源的一部分?

时间:2015-08-25 13:38:41

标签: ruby-on-rails rspec activeadmin

我已经检查了我的覆盖文件,由simplecov构建,我已经看过这样的未覆盖区域:

key

我该如何处理?

更新:render_views可以帮助避免未覆盖的区域。

1 个答案:

答案 0 :(得分:2)

要让SimpleCov检测ActiveAdmin表单DSL的覆盖范围,您需要为编辑操作创建一个控制器测试。为创建和更新操作添加覆盖率以确保permitted_params不过滤特定属性是一个好主意。我已经为AdminUser模型的编辑和更新操作添加了规范。

# spec/controllers/admin/users_controller_spec.rb
require 'rails_helper'
include Devise::TestHelpers

RSpec.describe Admin::AdminUsersController, type: :controller do
  render_views

  let(:admin_user) { AdminUser.create!(email: 'admin@example.com', password: 'password')}

  before(:each) do
    sign_in admin_user
  end

  describe 'edit' do
    it 'renders user form' do
      get :edit, id: admin_user.to_param
      expect(assigns(:admin_user)).to eq admin_user
    end
  end

  describe 'update' do
    it 'updates user' do
      patch :update, { id: admin_user.to_param, admin_user: { email: 'nimda@example.com' }}
      admin_user.reload
      expect(admin_user.email).to eq 'nimda@example.com'
    end
  end
end