Ruby on Railsで、RSpec導入にあたって、
NoMethodError: undefined method use_transactional_fixtures=' for
や、
bundler: failed to load command: rspec
もしくは
bundler: failed to load command: rspec
NameError: uninitialized constant FactoryGirl
と出た時のエラー処理についての記事です。
対処方法
まずは以下のコードが書かれているか、チェックしてみてください。
spec/rails_helper.rbに コードを追加する。
require 'factory_girl_rails'
を追加。config.include FactoryGirl::Syntax::Methods
を追加。
以下コード例
ENV["RAILS_ENV"] ||= 'test' require 'spec_helper' require File.expand_path("../../config/environment", __FILE__) require 'rspec/rails' require 'factory_girl_rails' --- 省略 --- RSpec.configure do |config| # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures config.fixture_path = "#{::Rails.root}/spec/fixtures" config.include FactoryGirl::Syntax::Methods --- 省略
こちらを加えると解決できるはずです。
エラーが修正されない場合
gem fileの gem 'rspec'
のバージョンをチェックする。
自分の場合は、RSpecの入門として、こちらの記事を参考にしてました。
RSpecの入門とその一歩先へ ~RSpec 3バージョン~ - Qiita
この影響で、 Gemfileを
+source 'https://rubygems.org' + +gem 'rspec', '3.0.0'
としており、rspecの 3.0.0 がinstallされていました。
こちらを修正するとFactoryGirlとのバージョンが合うみたいで、エラー解決になりました。