0

我有一个从注册表中读取一些值的代码。

如何打破这种依赖?这是一段代码:

RegistryKey readKey = 
        Registry.LocalMachine.OpenSubKey("SOFTWARE\\MyCompany\\MySoft");
4

2 回答 2

4

您可以将配置信息从注册表中提取到配置文件中,app.config例如 .

于 2012-08-20T07:02:38.540 回答
3

两个可能的答案浮现在脑海

1) 注册中心的代理服务

例如

public interface IRegistryService {
    string GetRegistrySubKey(string path);
}

IRegistryService 的默认实现实现了给定的代码,并且可以将模拟注入到被测单元中以进行单元测试。

2) 使用Moles模拟 Registry 类。

更多的工作需要设置。(需要下载和安装,并且需要一些项目/测试设置)但它是一个更通用的解决方案,因为 Moles 可用于模拟任何 BCL 类。

嗯,
艾伦。

于 2012-08-20T08:48:58.967 回答