1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rspecの導入方法

Last updated at Posted at 2021-02-23

初学者・初投稿です。よろしくお願いします!間違い等あればご指摘ください!
Rails 6.0.0
Ruby 2.6.5

Rspecの前に、まずテストコードの必要性について確認したのち、本題に触れます。

テストコードとは?

テストコードを書くことで、手動ではなく、自動でWebアプリケーションの挙動を確認してくれます!
メリットとしては、
・ クオリティの担保ができる
 人為的なミスや、仕様が変えあった時に一から全部やらねばならない、確認した記録が残らないなど。
・ 仕様を見極めることができる
 テスト項目を洗い出す=アプリケーションの仕様を把握することができる。

テストコードを書く的に意識することは以下の2点です!

1.「何を確認したいのか」を意識する。
2. 気になる点があれば、binding.pryで止める。(別途Gem「pry-rails」のインストールが必要)

テストコードの種類

テストコードには、大きく分けると2つの種類があります。

単体テストコード

モデルやコントローラーなどの機能1つ1つを確認します。
バリデーションの挙動確認が主体のイメージ。

結合テストコード(統合テストコード)

ユーザーがブラウザで操作する一連の流れを再現して問題がないかを確認します。
ex) ユーザーが新規登録をする場合
   トップページに移動→サインアップページがあるかを確認→新規登録ページに遷移→ユーザー情報の入力→...など。

Railsにおいて、テストを書くときに使うと便利なRspec

テストコードについて大まかに理解できたところで、本題に入りましょう!

Rspecとは?

Rspecとは、Ruby on Railsにテストコードを書くためのGemのことです。
Rspecでは、コマンドひとつでテストの実行が可能です。便利!

Rspec公式GitHubページ

Rspecの導入(Gem)

Rspecの導入は至って簡単です。
Gemfileを開き、group :development, :test doにgem **'rspec-rails', '~> 4.0.0'**を記述します・

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'rspec-rails', '~> 4.0.0'
end

その後bundle installを実行しましょう。

% cd ~/#任意のディレクトリへ移動
% bundle install

Rspecの設定

次にアプリケーション内でRspecを使うための設定をしていきます。

任意のアプリケーションにRspecをインストール

以下のコマンドです。ターミナルに記述します。

% rails g rspec:install

完了するといくつかのファイルやディレクトリが生成されます。

.rspecに設定の追加

テストコードの結果を可視化するための設定をします。
先ほど生成されたファイルの一つ**.rspec**ファイルを開き、以下の記述を追加しましょう。

.rspec
--require spec_helper
--format documentation

ここまででRspecの設定は完了です!お疲れ様でした!

単体テスト、結合テストについては別記事にて随時更新します。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?