以前、プログラミンにおいて関数/メソッドを分割したくなるときについて書きました。
ajya.hatenablog.jp
この記事を書いた後に追加で、関数/メソッドを分割したくなるときがあるのは、テスト用のコードを書くときです。
データベースから取得した値を処理するプログラムを書いている場合は、テスト用のデータをデータベース上に用意して、テストをすればデバッグができます。
データベースから取得した値に対して複雑な処理をしていて、テスト用のデータの用意が難しい場合があります。
データの用意が難しい場合、テスト用のデータを用意しないでテスト用のコードでデータを用意して、テストをすればデバッグできます。
ソースコード上だけでテストが完結するので、楽といえば楽です。
テスト用のコードでデータを用意するのはいいのですが、テスト対象の関数/メソッドが複雑だったり長かったりすると、用意するデータもやはり複雑だったりしてきます。
テストができるようになるまでに手間がかかる結果となり、テスト用のコードのデバッグに時間がかかる事態にもなりかねません。
テスト用のコードに手間取るくらい面倒ならと、テスト対象の関数/メソッドの分割を始めると、テストの対象が増える事態にもなります。
シンプルなコードをシンプルなテスト用のコードでデバッグを行い、複雑なシステムを作り上げていきたいです。