あなたが提供する例では、良いテストは実際にあなたがずさんなデザインを実装することを可能にします、しかし私の経験では、悪いテストはあなたが同じことをするのを思いとどまらせることはなかったでしょう。
あなたの議論の誤謬は、「これを今やること」は、ずさんな設計を実装することによって時間を節約することを意味するという前提に集中しています。問題の真実は、あなたのテストが良いかどうかにかかわらず、あなたは技術的負債を負っているということです。そのコードに変更を加えることは、それを思い出させるための優れたテストフレームワークがあるかどうかに関係なく、はるかに複雑なタスクになりました。
未熟なコードは正常に機能し、顧客に完全に受け入れられる可能性がありますが、量が多すぎるとプログラムがマスターできなくなり、プログラマーの極端な専門化につながり、最終的には柔軟性のない製品になります。-ウォードカニンガム
優れたテスト手法の強みは、ある程度の安全性を備えた債務を負わせることにあるかもしれません。選択の結果、コードのこの領域が現在弱いことに気づき続ける限り、トレードオフの価値があるかもしれません-より高い負債を犠牲にして、より低いコストで、より早く製品を出荷しますその結果、短期的にバグが発生するリスクがあります。