「Everyday Rails - RSpecによるRailsテスト入門」を一通り行ったので少しずつまとめていく。今回は導入について
Gemfile インストール
group :development, :test do
gem 'rspec-rails', 'version'
end
rspec-railsのライブラリは、rspec-coreというrspecの核的なもの以外に、独立したgemが含まれており、Rails向けの便利機能などをパッケージとして簡単みインストールできる。
Rails以外のアプリケーションなどの場合は、これらを個別にインストールする必要がある。
記入後、bundle install を実行。
テストデータベース
まずはテストデータベースが存在するか確認。存在しなければ作成する必要がある。config/databese.ymlを開き、自分のアプリケーションが、どのデータベースに接続しているか確認。
config/database.yml
test:
<<: *default
database: db/test.sqlite3
初期設定を変更して居なければ、このように表示されるはず。
大事なのはdatabase: db/test.sqliteの箇所で、必要であれば自分で変更。
そして、次はターミナルからコマンドを実行しデータベースを作成。コマンドは以下の通り。
$ bin/rails db:create:all
テストデータベースが無ければ作成され、存在するなら教えてくれる。すでに存在した状態で実行しても教えてくれるだけで、データベースが消去されることはないので心配いらない。
むしろ、確認できる。
RSpecのインストール
$ bin/rails generate rspec:install
これによってspecフォルダが作成される。ここに、テストファイルなど追加していく。その他には、spec_hepler.rb,rails_helper.rbなどのカスタマイズ するファイルが作られる。
補足:出力を読みやすくする
そのままでは読みづらいRSpecの出力を文書にして読みやすくする設定。
.rspecファイルに以下を記入。
--require spec_helper
--format documentation
binstubによる高速化
binstubをインストールするとSpringの恩恵が受けられ、テストスイートが早くなる。
Gemfile
group :development do
gem 'spring-commands-rspec'
end
bundle install後に以下のコマンドを実行。
$ bundle exec spring binstub rspec
これにより、binディレクトリにrpecという実行ファイルが作られる。以上で完了。
まとめ
- Gemfile追加
- テストデータベース作成
- Rspecインストール
- binstubによる高速化
参考文献 『Everyday Rails - RSpecによるRailsテスト入門』 著:Aaron Sumner 訳:伊藤淳一・秋元利春・魚振江