テストコードを書くに当たって大切にすること
テストコードの大切さ
テストコードはとても大切です。テストコードを書かなければ、プログラムは想定していなかった動きを見せる可能性が高くなります。
あらゆるケースを想定し、「バグがないことを確かめてから」本番に適用するようにするのがテストコードを書く意義です。
テストを書くメリット
基本的に、ひとつのプロダクションコードに対してはひとつのテストコードが必要です。
例えばRuby on Railsにおいては、モデルクラスやコントローラークラスひとつにつきひとつのテストコードを書かなければいけません。これは面倒に感じるかもしれませんが、それを補いなお余るほどのメリットも存在します。それは、主に以下の2つです。
1.仕様漏れを減らすことができる
テストをするにあたっては、対象のメソッドがどのような目的で作成されどんな挙動をしなければいけないのかということを全て洗い出します。結果的に仕様を良く確認することになり、バグを引き起こす仕様漏れを少なくすることができます。
テストコードを書く際の心がけ
1. スピードは求めない
コードを書く量が増えるので、開発スピードが遅くなることは許容しましょう。
2. DRYを意識し過ぎない
DRYとは、Don't Repeat Yourselfの頭文字をとったもので、「同じような記述はなるべくまとめられないか考える」というプログラミングの原則です。
しかし、テストコードを書く際はわかりやすさ優先です。DRYを意識し過ぎるとわかりづらくなることがあるので注意しましょう。
テストの種類
テストと偏に言っても様々な種類があります。
1. 単体テスト
ひとつのプログラムのまとまりに関して、それ単体が正常に動くか確かめるテストのことを単体テストと呼びます。例えばRailsであれば、モデルクラスひとつ、コントローラークラスひとつにつきそれぞれテストコードを書きます。
2. 統合テスト
複数のプログラムが連動して行われる処理が意図した通りに行われるかを確かめるテストのことを統合テストと呼びます。例えばRailsであれば、ユーザーの新規登録における一連の処理をテストすることが考えられます。ユーザーの新規登録用画面から値を入力、送信して、データベースにレコードが追加されるまでの一連の流れをシミュレートするテストコードを書きます。