質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

622閲覧

Rails5, RSpecのテストファイルの読み込みについて

koume

総合スコア458

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2017/08/08 15:29

ローカル開発環境、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を読み込めれば全て解決するような感じもしているのですが
手も足も出ない状態で全く前に進めなく嵌ってしまっているのでどなたか対策を教えていただけないでしょうか?
宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

お使いのrspec-railsのバージョンが古くrails5をサポートしていません。rspec-rails3.6から対応しています

投稿2017/08/08 23:35

hellomartha

総合スコア329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koume

2017/08/09 02:11

回答ありがとうございます。rspec-railsのバージョンを変更してやってみます。今後とも宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問