実は最近 C# でちょっと動作確認がめんどくさいコードをぺけぺけ書いている。 というわけで、珍しく(?)できるだけ手厚くテストを書こうとしているのだが、外部のライブラリとかサービスとか絡んでいて、まさにテスト泣かせな状況。 そう、今こそレガシーコード本(WEwLC, レガシーコード改善ガイド)を読んだ経験が生きるとき! なんか Seam とか Sprout とかあったよなあ……と本をひっくり返しそうになったが、今は Moles といういいものがありまして。 Moles は MS 謹製のモックフレームワークで、一言で言うと「任意のメソッドの振る舞いをアドホックに書き換えることができる」という最終兵器的な代物。 例えば、中で現在日時の取得を行なっているコードをテストしようと思ったら、その日時取得部分を関数オブジェクトとか delegate とかまあなんしかそこらへんの手段で外出しして……みたい