gpt4 book ai didi

ruby-on-rails - Rails 6 - 由于 ActionPack .empty 导致测试失败?对于零 :NilClass

转载 作者:行者123 更新时间:2023-11-28 21:36:09 24 4
gpt4 key购买 nike

我最近将我的 Rails 应用程序从 6.0.0.beta3 升级到 6.0.0,我所有的测试都使用 _path_url 我得到了以下错误:

HomeControllerTest#test_should_see_home_page:
NoMethodError: undefined method `empty?' for nil:NilClass
/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:781:in `optimize_routes_generation?'
/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/url_for.rb:220:in `optimize_routes_generation?'
/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:228:in `optimize_routes_generation?'
/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:198:in `call'
/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/routing/route_set.rb:329:in `block in define_url_helper'
/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/integration.rb:404:in `public_send'
/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/actionpack-6.0.0/lib/action_dispatch/testing/integration.rb:404:in `method_missing'
/code/events/test/controllers/home_controller_test.rb:6:in `block in <class:HomeControllerTest>'

有没有人看过这个?也许我在升级过程中错过了配置?我的应用程序在浏览器中运行良好,似乎受影响的是测试。

编辑

我正在运行的命令是:

BACKTRACE=YES rails test test/controllers/home_controller_test.rb

而且测试很简单,总是在路由线上失败:

require 'test_helper'

class HomeControllerTest < ActionDispatch::IntegrationTest

test "should see home page" do
get root_path
assert_response :success
end

end

最佳答案

好的。我终于找到了问题所在。在我的 environment.rb 文件中,我正在执行以下操作

App::Application.default_url_options = App::Application.config.action_mailer.default_url_options

因为它们都使用相同的设置。我这样做是因为我在我的模型 (XX_path/XX_url) 中使用路由助手。我没有在我的 environment/test.rb 文件中设置 action_mailer.default_url_options,这就是我的路由中断的原因。现在我在分配 App::Application.default_url_options 之前检查 env 是否处于测试模式,因为测试会自动使用 http://www.example.com 作为 url 选项。

关于ruby-on-rails - Rails 6 - 由于 ActionPack .empty 导致测试失败?对于零 :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58557355/

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