如何干掉控制器测试

时间:2015-09-23 14:40:57

标签: ruby-on-rails testing minitest

我有几十个控制器测试可以调整:

test "GET #show when not authenticated" do
  get :show, { id: 1 }
  assert_redirected_to '/login'
end

但我的application_controller默认被锁定。

class ApplicationController < ActionController::Base
  before_action :ensure_logged_in
end

我不应该将此测试添加到每个控制器测试中。但我不想只测试一个控制器。

我怎样才能测试我的应用程序是否被锁定而不会乱丢我的控制器测试?

1 个答案:

答案 0 :(得分:4)

您可以使用:

test "Should redirect to login when user is not logged in"  do
    [:show, :edit, :new].each do |action|
      get action, {id: 1}
      assert_redirected_to '/login'
    end
end

并将此测试命名为:

  

测试&#39;未经授权时重定向到登录页面&#39;做