Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails:分解一个大型test_helper.rb_Ruby On Rails_Ruby_Refactoring_Conventions - Fatal编程技术网

Ruby on rails RubyonRails:分解一个大型test_helper.rb

Ruby on rails RubyonRails:分解一个大型test_helper.rb,ruby-on-rails,ruby,refactoring,conventions,Ruby On Rails,Ruby,Refactoring,Conventions,我们有一个相当大的test/test\u helper.rb文件,它做了很多不相关的事情。是否有一种“Rails方式”将其分解为子文件,存储在一些常规位置 我试图搜索官方文件,但什么也找不到。感谢您的帮助 我们在我们的spec/spec\u helper.rb中这样做(使用RSpec而不是Minitest,但同样的原则应该适用): Dir[“#{File.dirname(uuuu File_uuu)}/support/***.rb”].sort.each do|File| 需要文件 结束 然后

我们有一个相当大的
test/test\u helper.rb
文件,它做了很多不相关的事情。是否有一种“Rails方式”将其分解为子文件,存储在一些常规位置


我试图搜索官方文件,但什么也找不到。感谢您的帮助

我们在我们的
spec/spec\u helper.rb中这样做(使用RSpec而不是Minitest,但同样的原则应该适用):

Dir[“#{File.dirname(uuuu File_uuu)}/support/***.rb”].sort.each do|File|
需要文件
结束
然后我们有不同的配置文件,比如
spec/support/vcr.rb
spec/support/redis.rb
,等等


编辑:这实际上来自
rspecrails
生成的文件。以下是RSpec 3.9中的行:

Dir[Rails.root.join('spec','support','**','*.rb')。每个{f |都需要f}

我们在我们的
spec/spec\u helper.rb中这样做(使用RSpec而不是Minitest,但同样的原则也应该适用):

Dir[“#{File.dirname(uuuu File_uuu)}/support/***.rb”].sort.each do|File|
需要文件
结束
然后我们有不同的配置文件,比如
spec/support/vcr.rb
spec/support/redis.rb
,等等


编辑:这实际上来自
rspecrails
生成的文件。以下是RSpec 3.9中的行:

Dir[Rails.root.join('spec','support','**','*.rb')。每个{f |都需要f}

不要忘记Ruby 2.4+中的
\uuuu dir\uuuu
,或者更好的
Rails.root.join('spec/support/…')
好的。只是确认一下:没有传统的目录结构,rails被配置为自动导入,比如控制器之类的?啊,看起来这是一个从旧版本的
rspec rails
自动生成的文件,我们从来没有更新过…@tadman Yep。在您
require File.expand_path(“../../../config/environment”和文件顶部的
)之后,
Rails.root
将可用于所有进一步的
require
s。您还可以
require\u relative'../config/environment'
,这实际上不那么凌乱。不要忘记Ruby 2.4+中的
\uu dir,或者更好,
Rails.root.join('spec/support/…')
Ah OK。只是确认一下:没有传统的目录结构,rails被配置为自动导入,比如控制器之类的?啊,看起来这是一个从旧版本的
rspec rails
自动生成的文件,我们从来没有更新过…@tadman Yep。在您
require File.expand_path(“../../../config/environment”和文件顶部的
之后,
Rails.root
将可用于所有进一步的
require
s。您还可以
require\u relative'../config/environment'
,这实际上不会太麻烦。