はじめに ユニットテストが浸透してきています。それでも、テストがないプロダクトのコードをメンテナンスするケースもあります。そうすると絶望的な気持ちになることもあると思います。 今回、そのようなコードにテストを追加するための道筋を示したいと思います。 場合によっては年単位の長い時間が掛かる可能性がありますが、ステップ毎にだんだん不安が減っていくようにしてあります。最後のステップではリファクタリング済みのコードを示しています。 仕様が不明なコードに絶望する必要がないと感じられたら嬉しいです。 サンプルコード 本来、ここで想定しているのは次のようなコードです。 500ステップを超える関数、しかも同様の長さの関数をいくつか呼び出している APIやファイルアクセスも含むことがあります ネストが多く、変数の関係性も複雑です 引数も型や用途が不明だったりします 基本的にはこれらの場合であっても有効な方法

