プログラミング

[Rails]RSpecでViewのテスト

投稿日:

こんにちは、Nanayakuです。

今回は、RSpecでViewのテストのやり方を紹介します。

「capybara」のみを使用したテストを解説していきます。

「System Spec」については、rspec-rails 3.7の新機能!System Specを使ってみた - Qiitaを参考にしてみてください。

何をテストするのか

そもそもViewの何をテストすればいいかと言いますと、ユーザーと同じようにページに移動し、入力フォームに入力し、ボタンをクリックしたら想定通りの動きになるか」をテストします。

それを可能にするのが「capybara」と言うGemです。

 

インストール

Gemfileに「gem 'capybara'」を追記し、bundle installします。

Rails 5.1以降の場合は、デフォルトで入っているので、インストールは不要です。

 

設定

インストールが終わっても、「capybara」を使用することは出来ません。

rails_helper.rb」に、「require 'supports/capybara'」を追記することで使用できます。

 

テストの作成

今回は、新規登録とログインのテストを書いていきます。

CSSなどをなくした新規登録・ログイン画面のコードです。

 

 

今回のテストコードは下記の通りです。

 

ここで出てきたコマンドについて簡単に説明していきます。

参考

他のコマンドについて調べたい人は、「使えるRSpec入門・その4「どんなブラウザ操作も自由自在!逆引きCapybara大辞典」 - Qiita」で詳しく解説しているので参考にしてみてください。

 

実行

「$ rspec」でテストを実行できますが、ディレクトリ・ファイルを指定することで、テストの時間を短縮できます。

実行すると画像のように表示されます。

自分はDocker環境なのでコマンドが少し違います。

また、画像のように表示させたい場合は「[Rails・Docker]初めてのRSpec」で、オプションの設定方法を解説しています。

 

参考サイト

 

最後に

備忘録がわりに作ったので、間違っている所とかあったら、コメントくれると嬉しいです。

-プログラミング
-

Copyright© Nanayaku blog , 2019 All Rights Reserved Powered by AFFINGER5.