リファクタリングの怖い話

フレームワーク中で使用している、あるオブジェクトを一意に識別するための項目を"id"から"name"に変えることにした。
昔々であればgrepかけて修正する部分を局所化して、と、お決まりの作業なんだが、最近のIDEは便利なリファクタリング機能が標準で付いてくるので、勢いよくこの機能で一気に「名前を変更」したのだが、以下の定数の中身まで変えてしまい、酷い目にあった。

internal const string ATTRIBUTE_ID = "name";

この場合、定数の値を変えただけなのでビルドでエラーが出る訳でも無く、アプリケーションが起動しなくなる訳でも無い。問題はこの定数が通信で使用しているXMLのデータを識別する要素のアトリビュート値だった事で、サーバ側にデータが到達して初めてエラーが発覚するのである。

リファクタリング機能(今回はReSharperだった)の名前変更は、ちゃんと変更する部分をプレビューしてくれる機能があったりするので、それを注意してチェックしていればこんな下らないミスは防げたのだが情けない。
まあ、それよりなによりこの問題を察知できないテストクラスのへぼさに泣けた。