gpt4 book ai didi

ruby-on-rails - Minitest - 在 Rails 4 中测试 ApplicationController before_action

转载 作者:行者123 更新时间:2023-12-03 16:02:45 26 4
gpt4 key购买 nike

如何在 Minitest 中测试 ApplicationController before_action?我有一个 before_action 从 url params 设置语言环境,但我不知道如何为它设置测试。

最佳答案

您可以通过设置匿名 Controller 并将规范请求路由到该 Controller 来实现。

下面是一个例子:

require 'test_helper'

class BaseController < ApplicationController
def index
render nothing: true
end
end

class BaseControllerTest < ActionDispatch::IntegrationTest
test 'redirects if user is not logedin' do
Rails.application.routes.draw do
get 'base' => 'base#index'
end

get '/base'

assert_equal 302, status
assert_redirected_to 'http://example.com/login'
Rails.application.routes_reloader.reload!
end

test 'returns success if user is loggedin' do
Rails.application.routes.draw do
get 'base' => 'base#index'
end

mock_auth!

get '/base'
assert_equal 200, status
Rails.application.routes_reloader.reload!
end
end

关于ruby-on-rails - Minitest - 在 Rails 4 中测试 ApplicationController before_action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361479/

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