【Ruby on Rails】Rspecを使ったテストの種類
Rspecを使ったテストの種類
全体的なテスト
システムテスト
E2E(End to End)テストに相当し、システム全体を通してテストを行うこと。
Webサービスの場合は、ユーザと同じようにブラウザを操作し、挙動が期待通りになっているかを確認する。
Rspecでの名称
System Spec
Feature Spec
結合テスト
色々な機能の連続が想定どおりに動くかを確認するテスト。
システムテストよりも内部的な確認ができる。
Rspecでの名称
- Request Spec
機能テスト
結合したプログラムを1つの機能として行うテスト。
利用する頻度はそこまで多くない。
Rspecでの名称
- Controller Spec
部品のテスト
モデルのテスト
検証やデータの制御、複雑なロジックの挙動などを個別のテストケースとして記述する。
小さい粒度のテストがかけるため、システムテストなどでは行いづらい、様々な条件下でのわずかな挙動の違いを確認するのに向いている。
Rspecでの名称
- Model Spec
その他のテスト
他にも以下のようなSpecがある。
モデルほど頻度は高くないが、複雑なルーティングや、ほかのテストで置き換えづらいメーラーやジョブのテストは利用する場面がある。
Routing Spec
View Spec
Helper Spec
Mailer Spec
Job Spec
コメント
テストを書く機会が増えたので、テストの種類について調べてまとめてみた!
書く機会が多いのはFeature Spec
なので、他のテストについてはあまり書く機会がない…
学習も兼ねてSpecごとに掘り下げた記事も書きたいと思います 🤓