#はじめに
RSpecの導入までの流れは、こちらからどうぞ
##流れ
- FactoryBotの準備
- テストコードを記述するファイルの生成
- 記述の型
###1. FactoryBotの準備
ディレクトリとファイルを用意する。
ex)userモデルのFactoryBotなら、spec/factories/users.rb
spec/factories/users.rb
FactoryBot.define do
factory :user do
email {Faker::Internet.free_email} #例
#以下、同じように必要なFakerを記述
end
end
:userの部分が、spec/models/user_spec.rbでFakerを呼び出すときに使う。
Fakerの細かい使い方は、FakerのGitHubへ
###2. テストコードを記述するファイルの生成
ターミナルで、
rails g rspec:model モデル名
このコマンドにより、
spec/models/モデル名_spec.rb
のファイルが生成される。
ファイルの中に初めから、
spec/models/user_spec.rb
RSpec.describe User, type: :model do
pending "add some examples to (or delete) #{__FILE__}" #この行は削除
end
このようなコードが入っている。2行目のコードは削除して構わない。
(上の例は、モデル名にuserを指定したもの)
###3. 記述の型
spec/models/user_spec.rb
RSpec.describe User, type: :model do
describe '何をテストするのか(例)ユーザー新規登録' do
before do
@user = FactoryBot.build(:user) #userモデルを例にすると、userのFactoryBotを呼び出し
end
it "具体的なテスト項目(例)メールアドレスが必須であること" do
end
end
end
(同じく上の例は、モデル名にuserを指定したもの。)
.build(:user)←:userがFactoryBotから呼び出されている。
it
とdo
の間にexampleを入れる。
do~end
の間に、コードを記述する。