gpt4 book ai didi

ruby-on-rails - 我如何用 rspec 测试这个?

转载 作者:行者123 更新时间:2023-11-28 21:32:16 25 4
gpt4 key购买 nike

我正在使用 Sorcery gem 进行用户注册/登录。

这个 gem 的一个特点是 require_login before_filter 在您要验证的任何 Controller 上。

我创建了一个 dashboard他们登录后我的应用程序的命名空间。例如 /dashboard/reports/dashboard/employees

路线文件:

# Dashboard                                                
namespace :dashboard do
# Recent Activity
get '' => redirect('/dashboard/recent-activity')
get 'recent-activity' => 'activities#index', :as => 'root'
# Other dashboard controllers and actions
end

我将 before_filter 提取到它自己的 Controller 中,名为:

“应用程序/ Controller /仪表板/base_controller.rb”

class Dashboard::BaseController < ApplicationController

before_filter :require_login

end

我想做的是在某种测试中 100% 确定我在仪表板文件夹(或仪表板命名空间)中创建的任何新 Controller 继承自 Dashboard::BaseController

例如我的事件 Controller :

class Dashboard::ActivitiesController < Dashboard::BaseController

我不想在几个月后去创建 Controller 并且不小心让它继承自 ApplicationController,它仍然会但不会有登录功能。

我正在使用 RSpec

最佳答案

不敢相信我自己的眼睛,我自己解决了这个......

require 'spec_helper'

describe Dashboard::BaseController do

it "is the superclass of every dashboard namespaced controller" do
Rails.application.eager_load!
ApplicationController.descendants.each do |controller|
if controller.to_s.include?("Dashboard::") && controller.to_s != "Dashboard::BaseController"
expect(controller.superclass.to_s).to eq("Dashboard::BaseController")
end
end
end

end

关于ruby-on-rails - 我如何用 rspec 测试这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15307499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com