ローカル開発環境、Ruby2.3.1, Rails5, RSpec3.0.0.beta2, MySQL14.14 Factory Girl 4.4.1 でwebアプリケーションを学習しながら作成中です。
上記の環境でテストを行った時のファイルの読み込みとエラーに対しての質問です。
#テスト実行コマンド [vagrant@localhost chibi]$ bin/rspec spec/models/administrator_spec.rb
spec/models/administrator_spec.rb(エラーが発生した下記コードと1行目の記述だけが違います)
#テスト成功コード**(1行目のコードがrequire 'spec_helper')** require 'spec_helper' describe Administrator do describe '#password=' do example '文字列を与えると、hashed_passwordは長さ60の文字列になる' do admin = Administrator.new admin.password = 'baukis' expect(admin.hashed_password).to be_kind_of(String) expect(admin.hashed_password.size).to eq(60) end example 'nilを与えると、hashed_passwordはnilになる' do admin = Administrator.new(hashed_password: 'x') admin.password = nil expect(admin.hashed_password).to be_nil end end end
spec/models/administrator_spec.rb(上記コードと1行目だけ違います)
(後にFactory Girlも使ってテストするのでこちらでテストを進めたいのです)
#(NoMethodError)が発生し読み込まれないコード**(テスト成功時の1行目のコードをrequire 'rails_helper'に変更しただけ)** require 'rails_helper' #テストに成功した上記のコードとの違いは1行目だけで、あとは同じです。
spec/spec_helper.rb は初期状態のまま (コメントだらけで1行しかコードが無い)
RSpec.configure do |config| end
spec/rails_helper.rb(後にFactory Girlも使ってテストするのでこちらでテストを進めたい)
ENV["RAILS_ENV"] ||= 'test' require 'spec_helper' #この行のコードをrequire 'rails_helper'に変えても同じ結果でした。 require File.expand_path("../../config/environment", __FILE__) require 'rspec/rails' Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } ActiveRecord::Migration.maintain_test_schema! RSpec.configure do |config| config.fixture_path = "#{::Rails.root}/spec/fixtures" config.use_transactional_fixtures = true config.infer_spec_type_from_file_location! config.include FactoryGirl::Syntax::Methods config.before(:suite) do FactoryGirl.reload end end
ファイルが読み込まれないときのエラーの内容
エラーの内容 [vagrant@localhost chibi]$ bin/rspec spec/models/administrator_spec.rb Running via Spring preloader in process 16056 /home/vagrant/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rspec-rails-3.0.2/lib/rspec/rails/fixture_support.rb:25:in `block in <module:FixtureSupport>': undefined method `use_transactional_fixtures=' for #<Class:0x007f75640b52a8> (NoMethodError) Did you mean? use_transactional_tests= use_transactional_tests use_transactional_tests? ・ ・ ・
他のテストコードでも試してみましたが 1行目をrequire 'spec_helper'と記述するとコードが読み込まれ、require 'rails_helper'とすると
同じくファイルは読み込まれず、同じエラーが出てしまいます。rails_helper.rbを読み込ませるにはどうしたらいいのでしょうか?
自力では解決できずに困っております。何が原因なのでしょうか?rails_helper.rbを読み込めれば全て解決するような感じもしているのですが
手も足も出ない状態で全く前に進めなく嵌ってしまっているのでどなたか対策を教えていただけないでしょうか?
宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/09 02:11