mgmmyBlog

Webエンジニア👩‍💻 Railsの話がメインです。

【Ruby on Rails】Rspecを使ったテストの種類

f:id:mgmmy:20191202001931p:plain

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ごとに掘り下げた記事も書きたいと思います 🤓

参考

書籍:現場で使える Ruby on Rails 5速習実践ガイド