みやちゃ
皆さんこんにちは、みやちゃです!
物理とプログラミングについて解説しています!
皆様はテストを書けますでしょうか?
Railsでポートフォリオは作成できるけど、「テストを書け」って言われてもわからない。
Railsエンジニアとしては、テストを書けないのは致命的です。
そこで、Rails6の環境にRSpecを導入します。
- Rails6にRSpecを導入
Rails6の環境でRSpecでテストを書ける環境を整えることができます。
以下のような流れで進めていきます!
- RSpecのgemをインストール
- テスト用のデータベースを作成
- RSpecのインストール
- rspec binstubのgemのインストール
- ジェネレータの設定
目次
Gemfile
まずはBundlerを使ってRSpecをインストールします。
Gemfileを開いて、以下のコードを追加します。
group :development, :test do
gem 'rspec-rails', '~> 4.0.1'
end
次にターミナルを開いて、以下のコマンドを実行します。
miyacha$ bundle install
テストデータベースの確認
テスト用のデータベースを作成します。
正常に作成できるかの確認
config/database.ymlというファイルを開き、中身が以下のようになっていれば、問題ないです。
SQLiteの場合
test:
<<: *default
database: db/test.sqlite3
MySQLやPostgreSQLの場合
test:
<<: *default
database: [projects]_test
上記のようなコードが書かれていなければ、必要なコードを追加する必要があります。
MySQLやPostgreSQLの場合の、[projects]の部分はあなたのアプリケーションによって異なるため、それに合わせて置き換えてください。
データベースの作成
ターミナルを開いて、以下のコマンドを実行します。
miyacha$ bin/rails db:create:all
RSpecの設定
上のコマンドがうまく行けば、RSpecの設定ができるようになったはずです。
RailsアプリケーションにRSpecをインストールしましょう。
ターミナルを開き、以下のコマンドを実行してください。
miyacha$ bin/rails generate rspec:install
上記のコマンドを実行した結果、「spec」のファイルが作成されたはずです。
rspec binstub
rspec binstubを使うことで、テストスイートの起動時間を速くすることができます。
テストスイートとは、目的や対象ごとに複数のテストケースをまとめたものです。
Gemfileを開き、:developmentのグループ内にgemを追加します。
group :development do
...元から書いてあるgemは省略
下の1行を追加してください
gem 'spring-commands-rspec'
end
次にターミナルを開き、以下のコマンドを実行して、gemをインストールしましょう。
miyacha$ bundle install
binstubのgemがインストールできたので、以下のコマンドを実行して新しいbinstubを作成しましょう。
miyacha$ bundle exec spring binstub rspec
コマンドがうまく実行できていれば、アプリケーションのbinディレクトリ内にrspecという実行用ファイルが作成されているはずです。
正しくインストールされているか確認
先ほどインストールしたbinstubを使って、RSpecが正しくインストールされているかを確認します。
ターミナルを開いて、以下のコマンドを実行してください。
miyacha$ bin/rspec
すると、以下のような結果が返ってきました。
Finished in 0.03718 seconds (files took 0.78572 seconds to load)
0 examples, 0 failures
まだテストを何も書いていないので、全て0ですが、RSpecはちゃんとインストールされているようです。
ジェネレータの設定
これから新しいモデルやコントローラーなどを作成する時に、一緒にRSpecのテストファイルも自動で作成してもらえるように設定しましょう。
config/application.rbを開き、以下のコードを追加します。
require_relative 'boot'
require 'rails/all'
Bundler.require(*Rails.groups)
module MiyachaApp
class Application < Rails::Application
config.load_defaults 6.0
ここから
config.generators do |g|
g.test_framework :rspec,
fixtures: false,
view_specs: false,
helper_specs: false,
routing_specs: false
end
ここまで
end
end
これでテストを書く環境が整いました!
まとめ
いかがでしたでしょうか?
今回は、Rails6環境にRSpecを導入しました。
みやちゃ
ここまでご覧いただきありがとうございます!
こちら のUdemyの動画教材は、8時間で、
- Dockerで仮想環境構築
- Railsの基礎を解説しながら、アプリケーション開発
- RSpecでテストを記述
まで解説しています。
Udemyの教材へRailsエンジニアとして働くために必要な、DockerとRSpecを同時に解説してくれています。
DockerとRSpecを使って作ったポートフォリオはかなり評価が高くなります。
ぜひ動画を見てみてはいかがでしょうか?
Udemyの教材へ受講生は、5000人以上!です。
さらに、Udemyは、30日間の返金保証付きなので、いつでも返金できます。