『実践Ruby on Rails 4』① Chapter9
2017-06-18
『実践Ruby on Rails 4』を実施中。
実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング
- 作者: 黒田努
- 出版社/メーカー: インプレス
- 発売日: 2014/05/23
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
authenticator_spec.rb
を書くところでかなり詰まったので、その時の対応などを記録する。
uninitialized constant Authenticator (NameError)
一旦authenticator
関連のファイルを全て書き終えたので、rspecを実行する。
が、rspecを実行しても、以下のエラーが出てしまう。
uninitialized constant Authenticator (NameError)
ググってすぐに見つかったのが、specファイルのrequire spec_helper
をrequire rails_helper
に書き換えるという内容のものだった。
書き換えて試してみたが、エラーの内容は変わらない。
更にググっていったら以下の記事を発見した。
RSpec/Rails: uninitialized constant が出たら bin/spring stop を実行してみると吉
このアプリケーションでもspringを使っているので、もしやと思って記事に書いてある、以下のコマンドを実行したらすぐに解決することができた。
bin/spring stop
ちなみにこのブログは『実践Ruby on Rails 4 現場のプロから学ぶ本格Webプログラミング』の著者のブログらしい。問題を認識して解決策を出していてくれて助かった。
undefined method build'
で、やっと先にすすめるかと思ったら、また違うエラーが発生。。。
undefined method build'
buildがどこにも定義されていないとのこと。
ググってみたら、buildといのは元々FactoryGirlが提供しているメソッドらしい。一般的にspec_helperに書いて読み込んでおくもの。で、本にもそのように書いてあったので、spec_helper
には読み込んでいたが、バージョンの問題などでspecファイルに読み込むのは、上にも書いたとおりrails_helper
である。なので、spec_helper
に記載されているFactoryGirl関連っぽいコードをrails_helper
に移動させてrspecを実行したら、エラーはなくなった。
大量の警告
がしかし、今度は大量の警告。。。しかもそれぞれ内容が違う。。。が、テスト自体は実施できているっぽい。これもググってみたら、まずはこの記事を発見。
2重に require すると以下が出る
二重にrequireしているようなコードがあったので、削除したら確かに大量の警告は消えた。
しかし本当に不要なのかが現時点では不透明なため、もう少しググる。
今度は、Rspecのバージョンが新しいと大量の警告が出てくる旨の記事を発見。
RSpecを実行するとWarningがたくさん出る場合
.rspec
内の-warings
というコードを削除するという内容で、無事大量の警告が表示されなくなり、テストも通ったので、今回はこちらの解決策を採用することにした。
元々もっと早く進める予定だったのに、結構つまずいていて辛い。。。