【问题标题】:Rspec tests for custom rails_admin controller actions?Rspec 测试自定义 rails_admin 控制器操作?
【发布时间】:2015-12-10 13:58:57
【问题描述】:

我将自定义操作定义为ailsAdmin::Config::Actions::Base 的子类。在动作下我定义了一个custom controller - register_instance_option :controller

控制器检查并删除了某些损坏的记录,并且在我的测试中似乎可以正常工作。如果这是一个普通的控制器,我会为这个controller写一个控制器spec,但我不知道如何为自定义specsspecs这样的actions

我查看了rails_admin repository 中的spec,但它似乎对我没有多大帮助:https://github.com/sferik/rails_admin/blob/master/spec/rails_admin/config/actions/base_spec.rb

我想做一个普通的controller spec 测试发布到端点,然后查看是否在an object 上调用了一个方法,链接似乎没有这样做。我似乎在网上找不到任何关于使用 Rspec 和自定义 rails_admin actions 的有用帖子。

【问题讨论】:

    标签: ruby-on-rails rspec rails-admin


    【解决方案1】:

    这是我的设置:

    RSpec.describe RailsAdmin::MainController, type: :controller do
     routes { RailsAdmin::Engine.routes }
    
     describe '#my_custom' do
       subject { get :my_custom, { model_name: 'my_model', id: my_model.id } }
    
       it "should respond with 302" do
         expect(response.code).to eq("302")
       end
     end
    end
    

    【讨论】:

      【解决方案2】:

      我有人帮我解决这个问题。可以像这样测试控制器:

      describe RailsAdmin::MainController, :type => :controller do
      

      但我一个人遇到了路由问题,即使我将 Rails Admin URL 帮助程序添加到 spec_helper.rb 也是如此。诀窍是,当你点击控制器时,你必须这样做:

      post :custom_rails_admin_route, { :use_route  => :rails_admin }
      

      多田!

      【讨论】:

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