開発途中からテストを導入する方法
初めに
以前執筆した記事【テストないとか、それケニーの前で言えんの?①】の続編です
テストの重要性は何となく理解しているものの、実務では後回しになっていたり、開発途中から導入しようとしているケースはあると思います。
そういった場合に途中からどうやって導入していくかを先輩エンジニアから学んでいたので、そのちょっと役立つノウハウをアウトプットしてみます。
手順
数千~数万行のコードに対して、どうテストを導入していくかについて、以下手順に沿って実施します。
なお、この手順が正解というわけではなく、他にもやり方はあると思いますが、手っ取り早く重要な箇所からテストを導入するには良い方法だと個人的には思っています。
①ビジネスロジックを見つける
まずは、ビジネスロジックを見つけない事には始まりません。
ビジネスロジック探し出すのが大変だと一瞬思った方いらっしゃるかもしれません。
そういう時は、まずはreturn
(return値)があるところがビジネスロジックと思ってもらってよいかと思います。
以前の記事で例として利用したコードですが、return値があるかと思います。
こういったreturn
があるところを探し出します。
②ロジックを抽出する
ロジック部分を見つけたら、別ファイルにうつす等して、ロジック部分を切り出します。
理由は主に以下です。
- 責務を分ける
- 可読性を上げる
本来はすべてのビジネスロジックを切り出すのが理想なのですが、実際問題として、納期等の兼ね合いもあるかと思いますので、もし納期が厳しい場合は、まずは最低限絶対死守しないといけない品質のところでラインを引いて抽出するのが良いかと思います。
③テストを実装する
切り出した全てのロジックに対して、Jest等でテストを実装します。
別記事の【重要】Next.js実装時はココを押さえて品質保とう!でも例として記載しましたが、以下参考ディレクトリ構成の赤枠箇所のように、ロジックとテストは別ディレクトリに分けて管理すると、一定の品質を保つのに良いかと思います。
最後に
そろそろテスト導入しないとなー。と思っているそこのあなた!
是非上記参考にしていただき、テストを導入しましょう。
Discussion