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

【Rails】Rspecでテストを行う際に使ったメソッドまとめてみた

Posted at

こんにちは!
今回は、実際にRspecでテストをする上で使ったメソッドをまとめてみました。

1, describe

テストのグループ化に使用され、テスト対象となるクラスやメソッドの説明を行う。

describe 'User' do
  # Userクラスに関するテスト
end

2, context

条件によるグループ化を行う。

context 'when user is an test' do
  # ユーザーがテストの場合
end

3, it

具体的なテストケースを記述し,期待する結果をexpectを使って定義。

it 'returns the correct name' do
  expect(user.name).to eq('Yamada')
end

4, expect

テストで期待する結果を定義するために使用。
メソッドやオブジェクトの動作が期待通りであるかどうかを確認

expect(user.name).to eq('Yamada')

5, let

テスト内で使うオブジェクトを定義するために使われる遅延評価されるヘルパーメソッド.

let(:user) { User.new(name: 'Yamada') }

6, before / after

各テストの前後で共通のセットアップやクリーンアップを行いたい場合に使用。beforeは各テストの実行前、afterは実行後に処理を行う。

before do
  @user = create(:user)
end

7, subject

テスト対象のオブジェクトを定義する際に使う。

subject { User.new(name: 'Yamada') }
it { is_expected.to be_valid }

8, change

オブジェクトの状態が変化することを確認。主にデータベースのレコード数や属性の変更を検証。

expect { user.save }.to change(User, :count).by(1)

9, have_http_status

リクエストスペックで、HTTPステータスコードが期待通りかどうかを確認。

expect(response).to have_http_status(:success)

10, redirect_to

HTTPリクエストのテストで、リダイレクト先のURLが正しいかどうかを検証。

expect(response).to redirect_to(root_path)

最後に

今回は以上になります!
最後まで見ていただきありがとうございました!

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