[RUBY-ON-RAILS] 사양 / spec_helper.rb에서 사양 /의 rails_helper.rb의 다른 방법은 무엇입니까? 나는 그것을 필요합니까?
RUBY-ON-RAILS사양 / spec_helper.rb에서 사양 /의 rails_helper.rb의 다른 방법은 무엇입니까? 나는 그것을 필요합니까?
나는 두 번째 레일 자습서를하고있는 중이 야. 나는이를 입력 할 때
rails generate integration_test static_pages
나는 사양 / rails_helper.rb 및 사양 / spec_helper.rb 대신 단지 사양 / spec_helper.rb 수
내 테스트를 실행할 때 이제 그들은 느린 나는이 마지막 시간을했을 때 이상 (더 "자세한 정보")이며. 나는 두 파일의 차이가 무엇인지 궁금하고,하고 내가 뭔가 잘못을 한 경우. 또한, 모든 것을 엉망으로하지 않고 rails_helper.rb 파일을 제거하는 방법은 무엇입니까?
해결법
-
==============================
1.3 spec_helper.rb 및 rails_helper.rb 생성 RSpec에이 레일. spec_helper.rb (예 : lib 디렉토리 디렉토리에 클래스 사양으로) 레일에 의존하지 않는 사양입니다. 할 스펙 (레일 프로젝트, 대부분 또는 모두에) 레일에 의존에 대한 rails_helper.rb이다. rails_helper.rb는 spec_helper.rb이 필요합니다. 그래서 더, rails_helper.rb 제거하지되지 않는다; 귀하의 사양에 (그리고 spec_helper.rb)이 필요합니다.
3 spec_helper.rb 및 rails_helper.rb 생성 RSpec에이 레일. spec_helper.rb (예 : lib 디렉토리 디렉토리에 클래스 사양으로) 레일에 의존하지 않는 사양입니다. 할 스펙 (레일 프로젝트, 대부분 또는 모두에) 레일에 의존에 대한 rails_helper.rb이다. rails_helper.rb는 spec_helper.rb이 필요합니다. 그래서 더, rails_helper.rb 제거하지되지 않는다; 귀하의 사양에 (그리고 spec_helper.rb)이 필요합니다.
당신은 당신이 스스로를 실행할 때이 아닌 레일에 의존하는 사양가 그들이있는 거 아닌 레일 의존 시행하고, 가능한 한 빨리 실행하려면, 당신은 그에서 spec_helper.rb보다는 rails_helper.rb을 필요로 할 수있다. 즉 인기있는 방법이 될 것이 분명하므로하지만, 오히려 하나의 도우미 또는 각 사양 파일에 다른 사람을 필요로하는 것보다 당신의 .rspec에 -r rails_helper 매우 편리합니다.
당신이 스프링 프리 로더를 사용하는 경우, 각 클래스는 한 번만로드해야하고, 만 spec_helper을 필요로하는 하나의 스펙을 실행하는 경우에도 열심히 봄 클래스를로드, 그래서 일부 파일 만 spec_helper 요구에 훨씬 값이 없다 .
출처 : https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files
-
==============================
2.당신은 항상 spec_helper에 모든 CONFIGS을 결합 만 그가 도우미 파일을 레일 사양 도우미 INT를 요구할 수 있습니다.
당신은 항상 spec_helper에 모든 CONFIGS을 결합 만 그가 도우미 파일을 레일 사양 도우미 INT를 요구할 수 있습니다.
그것은 하루의 끝에, 당신은 수동으로 "리팩토링"을하고 있기 때문에 결코 "이상적인"입니다하지만 정말 당신을 괴롭히는 경우. 단지 Rspec.configure을 구성하는 방법을 완전히까지 당신에게 그게 전부에게 그것을 알고
#rails_helper.rb require 'spec_helper' #EMPTY FILE
그냥 모두 가지고하면은 특정 설치 레일
# spec_helper.rb # This file is copied to spec/ when you run 'rails generate rspec:install' require 'spec_helper' ENV['RAILS_ENV'] ||= 'test' require File.expand_path('../config/environment', __dir__) # Prevent database truncation if the environment is production abort("The Rails environment is running in production mode!") if Rails.env.production? require 'rspec/rails' # Add additional requires below this line. Rails is not loaded until this point! # Requires supporting ruby files with custom matchers and macros, etc, in # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are # run as spec files by default. This means that files in spec/support that end # in _spec.rb will both be required and run as specs, causing the specs to be # run twice. It is recommended that you do not name files matching this glob to # end with _spec.rb. You can configure this pattern with the --pattern # option on the command line or in ~/.rspec, .rspec or `.rspec-local`. # # The following line is provided for convenience purposes. It has the downside # of increasing the boot-up time by auto-requiring all files in the support # directory. Alternatively, in the individual `*_spec.rb` files, manually # require only the support files necessary. # # Dir[Rails.root.join('spec', 'support', '**', '*.rb')].each { |f| require f } # Checks for pending migrations and applies them before tests are run. # If you are not using ActiveRecord, you can remove these lines. begin ActiveRecord::Migration.maintain_test_schema! rescue ActiveRecord::PendingMigrationError => e puts e.to_s.strip exit 1 end RSpec.configure do |config| ... all our config.whatever_your_heart_desires
from https://stackoverflow.com/questions/24145329/how-is-spec-rails-helper-rb-different-from-spec-spec-helper-rb-do-i-need-it by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 번들 간부 레이크하거나 갈퀴를 사용? (0) | 2020.02.28 |
---|---|
[RUBY-ON-RAILS] Rails- 중첩 content_tag (0) | 2020.02.28 |
[RUBY-ON-RAILS] 어떻게 일부 HTML 루비 코드 주위 LINK_TO 포장합니까? (0) | 2020.02.28 |
[RUBY-ON-RAILS] 레일 : (함께) 두 열의 유효성 검사 고유성 (0) | 2020.02.28 |
[RUBY-ON-RAILS] 루비 온 레일즈 설치 - 맥 OS 라이온 (0) | 2020.02.28 |