TDD(Test-driven devlopment)
Test Code
TDDに入る前、先ずTest Codeについて知っておきたい。
Test Codeとは、サービスの品質を確認したりバグを見つけるため作成するコードで、サービスが期待どおりに動作しているのか確認できる。
Test Codeのない状態のテストより時間の節約ができるメリットもあるし、初めてコードを見た開発者がTest Codeを通じて、コードの動作を少し簡単に理解できるようにする文書にもなる。
TDD
-
定義
TDDは、開発が完了した後テストを行う方法ではなく、テストをして開発するプログラミング方法。つまり、まずTest Codeを作成し、そこに合格するためのコードを作っていく方法を意味する。
-
メリット
(1)コード作成前、具体的に設計することが可能
:TDDは具体的に設計を強制し、自分が何をどのように作るべきかを明確にしてくれる。
(2)エラーの素早かな把握とデバッグ時間の短縮
:どの部分に問題が発生したかを明確に把握できるため、より迅速な修正が可能になる。
(3)文書(説明書)の役割
:テストコードは、設計者が何の意図を持って書いたのか、どんな結果を予想したのかが
見えるため、設計者の意図が十分に把握することができる。 -
デメリット
(1)事前準備期間が必要
:TDDをプロジェクトに導入するには、事前に必要な知識を習得し、
開発環境を構築する必要があるので時間がかかる。
(2)生産性の低下
:開発時間が短いプロジェクトの場合、TDDを使用してテストコードを作成し、
それに合わせてコードを作成すると、時間がかかり、非効率的になりかねない。 -
@SpringBootTest
SpringBootでの統合テストのためのアノテーションで、全体的なFlowのテストに適切。 -
JUnit5
JUnitはTDDの代表的なToolで、世界中で最も多く使用されている「Javaユニットテストフレームワーク」である。特にJUnit5はJava8以上から使用可能で、JUnit Platform、JUnit Jupiter、Junit Vintageが組み合った形である。@Testを付けることで、テストメソッドであることが宣言できる。