その昔、プロジェクトの単体テストを自動化してみようと思い立ち、色々やったときの困ったところとやったことをまとめてみました。 その1 一つのクラスや関数が巨大 パターンを網羅するテストを書こうとしても、クラスのインスタンスを生成するのが困難だったり、1個の関数の分岐点が多すぎてテストパターンが膨大になる。テストを作るのに大量のモックやスタブが必要になって工数がかかりすぎた。 対策 保守で参加したプロジェクトが巨大なレガシーコードでテストできない。これが一番自動化を断念する理由になるんじゃないかな? この場合、無理して全部テストしようとするより、自分の書いた部分だけはテストで保護しようと努力しました。どうしても依存が激しくて無理!って場合は、その部分を関数化したりラッパークラスを作ったりして、モックやスタブを使えるようにして回避してました。レガシーコード改善ガイドって本を読むとイメージ付くかも