>>657
> 仕様を決めてから実装を始めようよというのが、TDD の方針

そうも行かないんだよね。

あとから初期段階では決まっていなかった
引数が追加になったりする

そもそもライブラリを作っているのでもなければ、
関数型言語的な意味の関数ではなくて
副作用が主なものを作ることが多い

たとえば関数を実行したらデータベースに書き込む処理とかね。
その時のデータベースに書き込むテーブルやカラムは
後から追加されることがたびたびある。