如果HostType为Moles,那么我无法通过ConfigurationManager.AppSettings获取数据
它在2-3个月前对我的工作很好。但它没有用,我的所有测试用例都失败了(提出了空引用异常)。
请帮我解决。感谢。
答案 0 :(得分:0)
这是.Net 4.0中当前版本的Moles中的一个已知错误 - 您可以将配置管理器鼹鼠并让它返回您想要的值作为解决方法。
例如,这是我为Linq To SQL DataContext设置测试以获取默认构造函数的代码覆盖而不连接SQL的方法。
[TestInitialize]
[HostType("Moles")]
public void Setup()
{
MCodesConfigurationHelper.DataAccessSettingsGet = () =>
{
MCodesDataAccessSettings setting = new MCodesDataAccessSettings();
setting.DatabaseConnectionStringGet = () => { return "this is a connection string."; };
return setting;
};
MConfigurationManager.ConnectionStringsGet = () =>
{
MConnectionStringSettingsCollection strings = new MConnectionStringSettingsCollection();
strings.ItemGetString = (string connectionString) =>
{
var cstring = new MConnectionStringSettings();
cstring.ToString = () => { return connectionString; };
cstring.ConnectionStringGet = () => { return connectionString; };
return cstring;
};
return strings;
};
MDataContext.ConstructorString = (DataContext dataContext, string connection) => { };
}
[TestMethod]
[HostType("Moles")]
public void DefaultConstructorTest()
{
using (MyDataContext target = new MyDataContext())
{
Assert.IsNotNull(target);
}
}