こんにちは!
今回は、実際に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)
最後に
今回は以上になります!
最後まで見ていただきありがとうございました!