0
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導入後、モデルの単体テストコードを書き始めるまで

Posted at

#はじめに
RSpecの導入までの流れは、こちらからどうぞ

##流れ

  1. FactoryBotの準備
  2. テストコードを記述するファイルの生成
  3. 記述の型

###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から呼び出されている。

itdoの間にexampleを入れる。
do~endの間に、コードを記述する。

0
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
0
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?