Ruby on Rails プログラミング 日記投稿サービスを1から作る

【Rspec入門 #1】Rspecの導入から動作確認までを徹底解説【RSpec 入門】

 

みやちゃ

 

皆さんこんにちは、みやちゃです!

物理とプログラミングについて解説しています!

皆様はテストを書けますでしょうか?

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日間の返金保証付きなので、いつでも返金できます。

たったの8時間でDocker、Rails、Rspecを学ぶ即戦力Railsエンジニア養成講座

© 2021 みやちゃのブログ Powered by AFFINGER5