Я думаю, что самый краткий путь был бы через метапрограммирование:
AdminController.subclasses.each do |controller|
describe controller do
controller.action_methods.each do |action_method|
it "redirects non-admin user on #{action_method}" do
get action_method
assert_redirected_to home_path
end
end
end
end
Вам придется обрабатывать посты и посты, и, возможно, есть некоторые опечатки, но, надеюсь, это даст вам возможность начать. (Кроме того, это использует синтаксис minispec. Вам придется немного перевести для теста / модуля.)
Я бы, вероятно, рекомендовал просто добавлять простые тесты для каждого контроллера, но это, вероятно, хороший интеграционный тест, чтобы убедиться, что вы не пропустите ни одного.