RSpec単体テストコード作成手順(ログインユーザー作成Ver.)
RSpecの単体テストコードの作り方を、ざっくり一眼でわかるようにまとめないと慣れるまで今後苦労すると思ったので、作成手順を自分なりにまとめてみました。
1.RSpecを使用するためのgem導入
・Gemfilegroup :development, :test do
#省略
gem 'rspec-rails'
end
・ターミナル
% bundle install
2.RSpecを導入
・ターミナル % rails g rspec:install3.テストコードの結果をターミナル上で可視化するための設定
/.rspec--require spec_helper
--format documentation
4.FactoryBotとFakerのgemを導入
・Gemfilegroup :development, :test do
# 省略
gem 'rspec-rails'
gem 'factory_bot_rails'
gem 'faker'
end
・ターミナル
% bundle install
5.ダミー用の画像を用意
public/images/ダミー画像6.~モデルのテストコードを記述するためのファイルを生成
・ターミナル % rails g rspec:model モデル名7.FactoryBotを使用して、Userモデルのインスタンスを生成するための値を設定
(例)
spec/factories/users.rb
FactoryBot.define do
factory :user do
nickname {Faker::Name.last_name}
email {Faker::Internet.free_email}
password {Faker::Internet.password(min_length: 6)}
#6文字以下にする場合↑
password_confirmation {password}
end
end
8.FactoryBotを用いてインスタンスを生成
(例)
spec/models/user_spec.rb
require 'rails_helper'
RSpec.describe User, type: :model do
before do
@user = FactoryBot.build(:user)
end
end
9.exampleを整理する
(例文) ・nicknameとemail、passwordとpassword_confirmationが存在すれば登録できること ・nicknameが空では登録できないこと 〜 など。10.exampleをテストコードのファイルに記述
(例)
spec/models/user_spec.rb
describe 'ユーザー新規登録' do
it "nicknameとemail、passwordとpassword_confirmationが存在すれば登録できること" do
end
・・・
end
11.テストコードを記述,実行
・ターミナル % bundle exec rspec spec/models/user_spec.rb暗記せずともこれ見ればある程度作れるようになるといいな。