APIテストについて
RailsのAPIテストについて理解がなかなかできていない部分があるので、調べたものを備忘録としてまとめていく。
Rspecとは
- そもそもRspecとは、RubyプログラマのためのBehaviour-Driven Developmentツール
- テスト駆動開発、ドメイン駆動設計、受入テスト駆動設計を組み合わせたソフトウェア開発のアプローチ
何が言いたいのかというと。。
RSpecを使うことでRailsでテストを実行することができるということ
テストを書く理由
-
テストコードはアプリケーションの命綱、安全ネット、防弾チョッキ
画面に不具合が発生し、期待通りの挙動にならなくなるのを防ぐ役割 -
将来の自分が楽をするために書く(開発効率をあげる)
コマンド一つで今まで書いてきたコードの動作確認ができる(1つ1つ手作業で確認しなくて良い)
リファクタリングをするには必須になる! -
将来共同で作業をするかもしれないメンバーに向けて書く
コードを書いた人の意図や期待している動きなどをテストコードで伝えることができる!
どういった所にテストを書くのか?
- 今の自分、または将来の自分が信頼できないところ
今後コードを変更した際に不具合が発生しそうな部分 - アプリケーションの管理上重要なところ
権限管理やログイン回り - アプリケーションの重要度が高いところ
userやarticleが作成できたり、変更できたりする部分 - 手動で何度も動作確認をするよりテストを実行した方が効率的なところ
テストコードを書くときに意識すべきこと
- 漏れのない、テスト項目を抽出する
テストに時間をかけすぎてないように最小限のコードを心がける - データの更新や削除を伴うテストを書く場合は、before/afterの両方を検証する。
更新なら、AがBに変わったことを検証する(つまり、最初はAだったことを検証しておく)
削除なら、Aが消えたことを検証する (つまり、最初はAが存在していたことを検証しておく)
この記事は以下の情報を参考にして執筆しました。