当前位置:  开发笔记 > 后端 > 正文

单元测试asp .net应用程序时如何使用web.config

如何解决《单元测试asp.net应用程序时如何使用web.config》经验,为你挑选了3个好方法。

我开始使用单元测试,我有一个方法,它使用web.config作为连接字符串.

我希望能够使用

[DeploymentItem("web.config")]

为了获得Web配置文件,这仍然留给我空引用异常(这是我写下一个测试的).

如何使用我试图测试的项目中包含的配置文件?

我正在使用VS 2008中包含的测试框架,如果这有任何区别的话.

谢谢



1> Gerrie Schen..:

单元测试项目应该有自己的配置文件.

在测试项目中,您可以选择Add,New Item,Application Configuration File.

此文件的行为与web.config完全相同,但随后用于单元测试.


我已经尝试了您的建议,我在测试项目中添加了一个新的配置文件。连接字符串到位,但是在运行测试时,我总是在一行上看到null var sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings [“ SqlServer”]。ConnectionString); 我可能会缺少什么?

2> Tony..:

您可以使用任何位置从web.config或app.config加载OpenMappedExeConfiguration.确保System.Configuration添加到项目的参考文献中.

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap()
fileMap.ExeConfigFilename = @"c:\my-web-app-location\web.config"

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
string connectionString = config.AppSettings.Settings["ConnectionString"].Value;

这是web.config,非常标准.



  
  
  
    
  

2017-09-29更新

我已经上了一堂课,可以更轻松地从文件中读取AppSetitngs.我从Zp Bappi那里得到了这个想法.

public interface IAppSettings
{
    string this[string key] { get; }
}

public class AppSettingsFromFile : IAppSettings
{
    readonly Configuration Config;

    public AppSettingsFromFile(string path)
    {
        var fileMap = new ExeConfigurationFileMap();
        fileMap.ExeConfigFilename = path;
        Config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
    }

    public string this[string key]
    {
        get
        {
            return Config.AppSettings.Settings[key].Value;
        }
    }
}

以下是如何使用该类.

IAppSettings AppSettings = new AppSettingsFromFile(@"c:\my-web-app-location\web.confg");
string connectionString = AppSettings["ConnectionString"];



3> Alex..:

将web.config文件复制到"/ bin"文件夹并将其重命名为"AppName.dll.config".

其中"AppName" - 是生成的程序集的名称.

我多次使用这个黑客.


在大多数情况下,添加一个简单的app.config就像在接受的答案中一样.这是一些奇怪的配置(如TestDriven中的"ad-hoc测试")
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有