1

如果 HostType 为 Moles,那么我无法通过 ConfigurationManager.AppSettings 获取数据

它在 2-3 个月前对我来说工作正常。但它不起作用,我所有的测试用例都失败了(引发了空引用异常)。

请帮我修复。谢谢。

MSDN 中也提出了相关线程

4

1 回答 1

0

这是 .Net 4.0 当前版本的 Moles 中的一个已知错误 - 您可以 Mole 配置管理器并让它返回您想要的值作为解决方法。

例如,这就是我为 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);
    }
}
于 2011-10-28T19:43:44.587 回答