技術的なことはなく、単体テストただの独り言ですのでブラウザバックしていただいてOKです。
CD/CIが気になるお年頃で、単体テストを自動化について考える機会が増えたので備忘録的に残したいと思います。
手動・自動どちらで単体テストを実施するにしても、下記は一般的なことだと思いますが、しかし私は納期に追われて蔑ろにすることが多かったです・・・。
- 単体テスト設計
- データ設計
- 単体テスト実装
- 単体テスト実施
改めて過去のソースコードを見直して、そのコードたちに単体テストテストコードを施してやろうとしたときに、いくつかの壁にぶち当たりました。
一言でいうと、煩雑。
具体的にいうと・・・。
- データをイジイジするところは、エンジニアごとにバラバラ
- 似たような関数もチラホラ
- 共通化や部品化してないので1関数が超大作
など
結果からいうと、既存のソースに対してテストコードを書くのは断念しました。
単体テストコードを適用するにしても、課題が割と足を引っ張るので、作業コストがかかりすぎてしまう。
共通化・シンプル設計などの重要性を感じました。
- テーブル設計もシンプルに→データ設計・テストデータの実装のスピードUP↑
- 共通化→テストコードの実装コストDOWN↓
- シンプル設計(メソッドの細分化)→テストコード実装コストDOWN↓、テスト設計コストDOWN↓
CI/CDの関連知識として、Gitlab連携など記事書いていますので、このあたりの課題感についても個人的な解決策を記事にしていきたいと思います。