spec / rails_helper.rb与spec / spec_helper.rb有什么不同? 我需要它吗?

我正在做Rails教程第二次。 当我input这个

rails generate integration_test static_pages 

我得到spec/rails_helper.rbspec/spec_helper.rb而不是spec/spec_helper.rb

现在,当我运行我的testing时,它们比上次做的时间更长(更“冗长”),而且速度更慢。 我想知道这两个文件之间的区别是什么,如果我做错了什么。 另外,有没有办法摆脱rails_helper.rb文件没有搞乱一切?

rspec-rails 3生成spec_helper.rbrails_helper.rbspec_helper.rb适用于不依赖于Rails的规范(例如lib目录中的类的规范)。 rails_helper.rb是依赖于Rails的规范(在一个Rails项目中,大部分或全部)。 rails_helper.rb需要spec_helper.rb 。 所以不,不要摆脱rails_helper.rb ; 在你的规格中需要它(而不是spec_helper.rb )。

如果你希望你的非Rails依赖规范强制它们不依赖Rails,并且在你自己运行的时候尽可能快地运行,那么你可能需要spec_helper.rb而不是rails_helper.rb 。 但是-r rails_helper中的-r rails_helper非常方便,而不是在每个spec文件中都需要一个助手或其他的帮助程序,所以这肯定是一个stream行的方法。

如果你使用的是spring preloader,每个类只需要加载一次, 即使你只运行一个需要spec_helper规范, spec_helper急切地加载类 ,因此在某些文件中只需要spec_helper就没有那么多的价值。

来源: https : //www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files