Rspec 测试自定义 rails_admin 控制器操作?
Rspec tests for custom rails_admin controller actions?
我将自定义操作定义为 ailsAdmin::Config::Actions::Base
的子类。在action下我定义了一个custom controller
- register_instance_option :controller
控制器检查并删除了某些损坏的记录,在我的测试中似乎运行良好。如果这是一个普通的控制器,我会为这个 controller
编写一个控制器 spec
,但我不知道如何为自定义 rails_admin
actions
编写 specs
] 像这样。
我查看了 rails_admin repository
中的 spec
,但它似乎对我帮助不大:https://github.com/sferik/rails_admin/blob/master/spec/rails_admin/config/actions/base_spec.rb
我想做一个正常的 controller spec
,我在其中测试发布到端点,然后查看是否在 an object
上调用了一个方法,link 似乎没有去做。我似乎无法在网上找到任何关于将 Rspec
与自定义 rails_admin actions
.
一起使用的有用帖子
有人帮我解决这个问题。控制器可以这样测试:
describe RailsAdmin::MainController, :type => :controller do
但我一个人遇到了路由问题,即使我将 Rails 管理员 URL 助手添加到 spec_helper.rb 也是如此。诀窍是,当你点击控制器时,你必须这样做:
post :custom_rails_admin_route, { :use_route => :rails_admin }
多田!
这是我的设置:
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
我将自定义操作定义为 ailsAdmin::Config::Actions::Base
的子类。在action下我定义了一个custom controller
- register_instance_option :controller
控制器检查并删除了某些损坏的记录,在我的测试中似乎运行良好。如果这是一个普通的控制器,我会为这个 controller
编写一个控制器 spec
,但我不知道如何为自定义 rails_admin
actions
编写 specs
] 像这样。
我查看了 rails_admin repository
中的 spec
,但它似乎对我帮助不大:https://github.com/sferik/rails_admin/blob/master/spec/rails_admin/config/actions/base_spec.rb
我想做一个正常的 controller spec
,我在其中测试发布到端点,然后查看是否在 an object
上调用了一个方法,link 似乎没有去做。我似乎无法在网上找到任何关于将 Rspec
与自定义 rails_admin actions
.
有人帮我解决这个问题。控制器可以这样测试:
describe RailsAdmin::MainController, :type => :controller do
但我一个人遇到了路由问题,即使我将 Rails 管理员 URL 助手添加到 spec_helper.rb 也是如此。诀窍是,当你点击控制器时,你必须这样做:
post :custom_rails_admin_route, { :use_route => :rails_admin }
多田!
这是我的设置:
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