レジストリからいくつかの値を読み取るコードがあります。
そのような依存関係を断ち切る方法は? コードの一部を次に示します。
RegistryKey readKey =
Registry.LocalMachine.OpenSubKey("SOFTWARE\\MyCompany\\MySoft");
たとえば、構成情報をレジストリから引き出して構成ファイルに入れることができますapp.config
。
2つの考えられる答えが頭に浮かびます
1) レジストリのプロキシ サービス
例えば
public interface IRegistryService {
string GetRegistrySubKey(string path);
}
IRegistryService のデフォルトの実装は、指定されたコードを実装し、単体テストのためにモックをテスト対象の単体に挿入できます。
2) Molesを使用して Registry クラスをモックします。
セットアップにはもう少し作業が必要です。(ダウンロードしてインストールする必要があり、プロジェクト/テストのセットアップが必要です)が、Moles を使用して任意の BCL クラスをモックできるため、より一般的なソリューションです。
アラン
。