【发布时间】:2015-09-23 14:40:56
【问题描述】:
我有几十个控制器测试符合:
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
我不应该将此测试添加到每个控制器测试中。但我不想只测试一个控制器。
如何测试我的应用程序是否已被锁定,而不会因为这种重复而导致我的控制器测试乱七八糟?
【问题讨论】:
-
测试时测试一次
ApplicationController。 -
@BroiSatse 但是 ApplicationController 没有任何动作,或者任何渲染视图的东西,没有任何路由。
-
RSpec 允许您创建匿名控制器,在其上定义虚假操作并测试其行为是否正常,因为它继承自另一个控制器。此处的文档:relishapp.com/rspec/rspec-rails/docs/controller-specs/…
-
@BroiSatse 我没有使用 Rspec。我正在使用默认的 Rails 测试堆栈,它是 minitest 和一些糖。但推理应该站在任何一边。我试试看。
-
in RSpec Shared Examples 可以派上用场来干燥这些东西:relishapp.com/rspec/rspec-core/docs/example-groups/…
标签: ruby-on-rails testing minitest