Ruby on rails 使用activeadmin进行Rails测试
我正在Rails项目中使用activeadmin,我想知道如何对其进行测试。我在网上查过了,但并没有相关的文档。 我有一个设置资源,我禁用了创建新资源或删除它的可能性 我想知道如何测试这些路由不存在,或者以另一种方式确保它不可访问。 在我的实际操作中,虽然我试图将此页面断言为404,但测试似乎抛出了此错误(这就是我试图测试的!!!):Ruby on rails 使用activeadmin进行Rails测试,ruby-on-rails,testing,activeadmin,minitest,Ruby On Rails,Testing,Activeadmin,Minitest,我正在Rails项目中使用activeadmin,我想知道如何对其进行测试。我在网上查过了,但并没有相关的文档。 我有一个设置资源,我禁用了创建新资源或删除它的可能性 我想知道如何测试这些路由不存在,或者以另一种方式确保它不可访问。 在我的实际操作中,虽然我试图将此页面断言为404,但测试似乎抛出了此错误(这就是我试图测试的!!!):ActionController::UrlGenerationError:没有路由匹配{:action=>“new”,:controller=>“admin/set
ActionController::UrlGenerationError:没有路由匹配{:action=>“new”,:controller=>“admin/settings”}
我不使用Rspec,而是使用Rails的Minitest。谢谢你的帮助 我的activeadmin文件:
ActiveAdmin.register Setting do
actions :all, except: [:new, :destroy]
…
end
require 'test_helper'
class Admin::SettingsControllerTest < ActionController::TestCase
include Devise::TestHelpers
setup :initialize_settings
test 'should throw 404 if trying to access new action' do
get :new
assert_response 404
end
def initialize_settings
sign_in users(:one)
end
end
我的测试:
ActiveAdmin.register Setting do
actions :all, except: [:new, :destroy]
…
end
require 'test_helper'
class Admin::SettingsControllerTest < ActionController::TestCase
include Devise::TestHelpers
setup :initialize_settings
test 'should throw 404 if trying to access new action' do
get :new
assert_response 404
end
def initialize_settings
sign_in users(:one)
end
end
需要“测试助手”
类Admin::SettingsControllerTest
我的项目:
ActiveAdmin.register Setting do
actions :all, except: [:new, :destroy]
…
end
require 'test_helper'
class Admin::SettingsControllerTest < ActionController::TestCase
include Devise::TestHelpers
setup :initialize_settings
test 'should throw 404 if trying to access new action' do
get :new
assert_response 404
end
def initialize_settings
sign_in users(:one)
end
end
- 轨道4.2
- Ruby 2.2.0
- 小型测试(非RSPEC)
ActionController::RoutingError
# test/routes/admin/settings_test.rb
require 'test_helper'
class Admin::SettingsRouteTest < ActionDispatch::IntegrationTest
test 'create' do
assert_raises(ActionController::RoutingError) do
post '/admin/settings'
end
end
test 'destroy' do
assert_raises(ActionController::RoutingError) do
delete '/admin/settings/1'
end
end
test 'edit' do
assert_routing '/admin/settings/1/edit', controller: 'admin/settings', action: 'edit', id: '1'
end
test 'index' do
assert_routing '/admin/settings', controller: 'admin/settings', action: 'index'
end
test 'new' do
assert_routing '/admin/settings/new', controller: 'admin/settings', action: 'show', id: 'new'
end
test 'update' do
assert_routing({ method: 'patch', path: '/admin/settings/1' }, { controller: 'admin/settings', action: 'update', id: '1' })
end
end
如果从此行中删除:new actions:all,除了:[:new,:destroy]之外,是否仍会收到相同的错误?你有没有试过,而不是断言你的回答。。。执行类似于此值的操作(响应)。必须用404响应实际上,这篇文章解决了Rails 4的问题: