Rails 6.1.3.1
基本行为规范代码:
describe "index" do
it "should show me the list" do
visit dashboard_targets_path
end
end
字符串
路由文件
namespace :dashboard do
resources :targets
end
型
错误显示了异常,但奇怪的是,它似乎没有调用应用程序,只是在我的测试代码中失败了:
1) interaction for Dashboard::TargetsController index should show me the list
Failure/Error: visit dashboard_targets_path
NoMethodError:
undefined method `empty?' for nil:NilClass
# ./spec/system/dashboard/targets_behavior_spec.rb:16:in `block (3 levels) in <top (required)>'
# /Users/jason/.rvm/gems/ruby-2.6.6/gems/webmock-3.12.2/lib/webmock/rspec.rb:37:in `block (2 levels) in <main>'
# /Users/jason/.rvm/gems/ruby-2.6.6/gems/rspec-wait-0.0.9/lib/rspec/wait.rb:46:in `block (2 levels) in <main>'
型
它似乎在测试代码中失败了,如果我进入调试器并直接运行dashboard_targets_path
,我也会得到同样的异常,所以问题只是在测试环境中使用助手****
在开发环境中,这个函数可以工作。
1条答案
按热度按时间yfwxisqw1#
这里的问题是
config/environments/test.rb
文件确实有default_url_options
。字符串
当您遇到消失在Rails gems中的错误时,调试它们的好方法如下:
型
在这里,您将看到完整的回溯到 Gem 中失败的行号。在调试Gem时要小心--记住要撤消您所做的任何更改,并且要知道您在Gem代码中的猴子修补不会影响您的产品代码。
请注意,您可以运行
gem pristine <gem name>
或gem pristine --all
来撤消对本地安装的gem所做的任何更改。