我正在寻找一种方法来‘绕道’配置文件中的单个项目与Moles。我可以这样做:
NameValueCollection appsettings = new NameValueCollection();
appSettings.Add("MyKey", "MyValue");
System.Configuration.Moles.MConfigurationManager.AppSettingsGet = () => this.appSettings;这工作得很好,但是我尝试测试的类使用了其他一些配置设置,包括ConfigSections和Moles绕道,似乎破坏了这一点。我只想替换一个特定值,而不是整个部分。在TypeMock中,我可以这样做:
Isolate.WhenCalled(() => ConfigurationManager.AppSettings["MyKey"]).WithExactArguments().WillReturn("MyValue");
当我使用TypeMock模拟configurationManager时,我的测试通过了,但是当我使用Moles版本(看起来它应该做同样的事情)时,它失败了,这意味着Moles一定以一种TypeMock没有的方式影响了ConfigurationManager类。
任何关于我如何使用moles来像TypeMock那样行为的帮助都将不胜感激。
发布于 2012-04-27 01:35:40
通过调用NameValueCollection(ConfigurationManager.AppSettings);
new value");
MConfigurationManager.AppSettingsGet = () => { return appSettings;};
https://stackoverflow.com/questions/6534263
复制相似问题