我的rails应用程序的模型Institution
只能创建AdminUser
。我的app/admin/institution.rb
文件如下所示:
ActiveAdmin.register Institution do
permit_params :name, :email
index do
id_column
%W(name email).each do |field|
column field.to_sym
end
actions
end
form do |f|
f.inputs do
f.input :name
f.input :email
f.actions
end
end
end
和创建机构的相应路线是POST /admin/institutions
。
有没有一种简单的方法可以在rspec中测试这条路线/动作?关于测试ActiveAdmin的在线资源非常少。我能找到的只有this,this和this,其中最后一个似乎与我要找的最接近,但并不完全正确。
我只想要一种方法来测试POST /admin/institutions
端点,只传递两个必需的参数(名称和电子邮件)。但是,以下rspec测试失败:
describe Admin::InstitutionsController, :type => :controller do
before(:each) do
@user = FactoryGirl.create(:admin_user)
sign_in @user
end
it 'creates an institution' do
post :create, name: "test_name", email: "test@email.com"
expect(Institution.all.count).to eq(1)
end
end
没有机构正在创建,但我没有收到任何错误。任何帮助表示赞赏,谢谢。
-Greg
答案 0 :(得分:2)
尝试使用institution
键对参数进行命名。在大多数资源
在Rails中基于表单的表单字段按模型的名称分组。试试以下内容:
it 'creates an institution' do
post :create, institution: { name: "test_name", email: "test@email.com" }
expect(Institution.all.count).to eq(1)
end
原因是表单如何将这两个字段呈现为文本输入(检查HTML源代码)。字段的名称应为:
institution[name]
institution[email]