【问题标题】:Not able to read ConfigurationManager.AppSettings on HostType("Moles")无法读取 HostType(“Moles”)上的 ConfigurationManager.AppSettings
【发布时间】:2011-10-28 06:33:29
【问题描述】:

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

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

请帮我解决。谢谢。

Related thread raised in MSDN also

【问题讨论】:

    标签: unit-testing mstest moles pex-and-moles


    【解决方案1】:

    这是 .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);
        }
    }
    

    【讨论】:

    • 感谢您的回复。我同意你的观点,在将 Moles 从学术版本更新到最新的 4.0 版本之后,我才遇到了配置问题。但我需要访问数据库的 app.config 和应用程序设置键以访问许多方法。因此,如果有任何解决方案或修复,请更新。
    猜你喜欢
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    相关资源
    最近更新 更多