【问题标题】:Write controller and feature specs for ActiveAdmin using RSpec?使用 RSpec 为 ActiveAdmin 编写控制器和功能规范?
【发布时间】:2013-08-14 19:41:57
【问题描述】:

如何为以下 ActiveAdmin 代码编写控制器和功能规范:

# app/admin/organization.rb
ActiveAdmin.register Organization do
  batch_action :approve do |selection|
    Organization.find(selection).each {|organization| organization.approve }
    redirect_to collection_path, notice: 'Organizations approved.'
  end
end

这是我的功能规范。在弹出菜单中找不到 ActiveAdmin 加载的“批量操作”。

# spec/features/admin/organization_feature_spec.rb
require 'spec_helper'
include Devise::TestHelpers

describe 'Admin Organization' do
  before(:each) do
    @user = FactoryGirl.create(:admin_user)
    login('admin@company.com', 'password1')
  end

  it 'approves in batch' do
    organization = FactoryGirl.create(:organization)
    visit admin_organizations_path
    check 'collection_selection_toggle_all'
    click_link 'Batch Actions'
    click_link 'Approve Selected'
    organization.reload
    organization.state.should eq 'approved'
  end
end

版本

  • Rails 3.2.14
  • ActiveAdmin 0.6.0

【问题讨论】:

    标签: ruby-on-rails-3.2 activeadmin rspec2


    【解决方案1】:

    我想出了如何构建控制器规范。

    # spec/controllers/admin/organizations_controller_spec.rb
    require 'spec_helper'
    include Devise::TestHelpers
    
    describe Admin::OrganizationsController do
      render_views
    
      before(:each) do
        @user = FactoryGirl.create(:admin_user)
       sign_in @user
      end
    
      it 'approve organization' do
        @organization = FactoryGirl.create(:organization, state: 'pending')
        post :batch_action, batch_action: 'approve', collection_selection_toggle_all: 'on', collection_selection: [@organization.id]
        @organization.reload
        @organization.pending?.should be_false
      end
    end
    

    如果有人知道如何编写功能规范,请分享该信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多