矛盾している話だけど、消したあとも同じ動作をしていることを保証するために必要なテストを書く必要がある。
もともとテストがあれば書く必要ないけど、古くからあるコードだとテストがなかったりするのでテストを書くわけです。
で、書いたテストはコードを消す時に一緒に消す時もある。
消すなら追加する必要もないかもしれないが、例えば消すコードはデータを追加する処理だったら、テストではデータがあることを検証する。
コードを消すことでデータは追加されないから検証は失敗する。つまり正しくコードを消せている事が証明できる。(はず)
そのあとでテストを成功させるためにデータの検証をしている部分を消すことで本当に消したいコードが消えたことになる。
こんなことを毎日やっている。