ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

テスト用のコードが書きにくいときにも、関数/メソッドを分割したくなります

以前、プログラミンにおいて関数/メソッドを分割したくなるときについて書きました。
ajya.hatenablog.jp

この記事を書いた後に追加で、関数/メソッドを分割したくなるときがあるのは、テスト用のコードを書くときです。

データベースから取得した値を処理するプログラムを書いている場合は、テスト用のデータをデータベース上に用意して、テストをすればデバッグができます。
データベースから取得した値に対して複雑な処理をしていて、テスト用のデータの用意が難しい場合があります。
データの用意が難しい場合、テスト用のデータを用意しないでテスト用のコードでデータを用意して、テストをすればデバッグできます。
ソースコード上だけでテストが完結するので、楽といえば楽です。

プログラミング
unsplash-logoSteve Halama

テスト用のコードでデータを用意するのはいいのですが、テスト対象の関数/メソッドが複雑だったり長かったりすると、用意するデータもやはり複雑だったりしてきます。
テストができるようになるまでに手間がかかる結果となり、テスト用のコードのデバッグに時間がかかる事態にもなりかねません。
テスト用のコードに手間取るくらい面倒ならと、テスト対象の関数/メソッドの分割を始めると、テストの対象が増える事態にもなります。

シンプルなコードをシンプルなテスト用のコードでデバッグを行い、複雑なシステムを作り上げていきたいです。