記事概要
Ruby on Railsのモデル単体テストについて、まとめる
前提
- Ruby on Railsでアプリケーションを作成している
- アプリにRSpecをインストールしている
- RSpecの設定が完了している
RSpecとは
モデルテストコードを書く方針
インスタンスを生成し、それがモデルに規定したどおりの挙動になるか、を確かめる
例)バリデーションが正しく働くか
手順(テストファイル作成)
- モデルのテストファイルを生成するため、下記コマンドを実行する
# アプリのディレクトリに移動 % cd ~/[アプリ名] % rails g rspec:model [モデル名]
-
spec/models/モデル名_spec.rb
が作成されたことを確認する -
モデル名_spec.rb
にrequire 'rails_helper'
が記述されていることを確認するrequire 'rails_helper' RSpec.describe モデル名, type: :model do pending "add some examples to (or delete) #{__FILE__}" end
- 上記から
pending "add some examples to (or delete) #{__FILE__}"
を削除するrequire 'rails_helper' RSpec.describe モデル名, type: :model do end
手順(テスト用ダミー画像の用意)
手順(テストケースの記述)
-
[モデル名]_spec.rbにテストケースを記述する
- 機能別・条件別・テスト詳細別にグループ分けを行う
- 保存するデータ(インスタンス)を作成する
- テストコードを記述する
※各テストコードが想定通りに実行できるかを確認するため、rails c
コマンドでコンソールを起動して確認を行う
手順(テストファイルの実行)
- テストファイルを実行するため、下記コマンドを実行する
# アプリのディレクトリに移動 % cd ~/[アプリ名] % bundle exec rspec spec/models/モデル名_spec.rb
- ターミナル.appで正常完了していることを確認する
結果が緑色で表示されれば実行成功
Ruby on Railsまとめ