- -Visual Stuido 2005集成了Unit Test功能后,创建和管理Unit Test变得比原来简单多了,并且独立项目的Unit Test模块和代码不会再"残留"于我们的dll中。不过VS 2005 Unit Test运行方法的原理和其他的Unit Test框架一样,也是使用反射来实现的,这样就会造成代码中一些依赖于运行环境的参数获取不到。

刚才做了一个方法的Unit Test,该方法依赖于Web.confing里面的一个定制参数,于是郁闷就来了。当我运行测试代码时,发现那个Config里面配置参数总是为null。本来这个问题应该一点都不复杂,可是当我查看程序编译时的输出信息时,发现如下的一个Warning:

'System.Configuration.ConfigurationSettings.AppSettings' is obsolete: 'This method is obsolete, it has been replaced by System.Configuration!System.Configuration.ConfigurationManager.AppSettings'

本来还有点清醒的我被这个Warning搞糊涂了,还以为是旧的方法出了什么问题被废弃,结果把本来简单的问题想的越来越复杂:(。于是按编译提示把ConfigurationSettings改成了ConfigurationManager,显然这是徒劳的,问题依旧,还是无法取到Config文件里的参数值

在ConfigurationSettings和ConfigurationManager间又倒腾了半天,仍然是毫无起色。在郁闷了很久之后,突然醍醐灌顶想到,config文件是一个应用的全局配置,应该在应用本身正常启动后才能被载入生效。由于Unit Test使用反射的方式载入assembly和class,再Invoke被测试的方法,这样一来本身的应用没有被正常的启动,config信息当然也就无从获取。于是马上启动应用本身,果然就取到了config文件中配置的参数。

所以在做Unit Test的时候,需要注意被测试的方法是否依赖了config文件中的参数,如果有需要暂时使用hardcode的常量来代替,再进行我们的Unit Test测试,否则就只有自个郁闷去吧

以上问题出现在ASP.NET项目中对Web.config文件的读取,至于WinForm程序的*.config文件想来也该有这个问题,不过还没有亲自去验证。

转载于:https://www.cnblogs.com/birdshome/archive/2006/03/16/UnitTest2005.html

在UnitTest中读取*.config文件的郁闷相关推荐

  1. java中读取properties文件内容五种方式

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

  2. 在.net中读写config文件的各种方法(转载)

    阅读目录 开始 config文件 - 自定义配置节点 config文件 - Property config文件 - Element config文件 - CDATA config文件 - Collec ...

  3. 五种方式让你在java中读取properties文件内容不再是难题

    2019独角兽企业重金招聘Python工程师标准>>> 方式1.通过context:property-placeholder加载配置文件jdbc.properties中的内容 < ...

  4. SQL Server中读取XML文件的简单做法

    SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...

  5. 从jar包中读取资源文件

    :[解惑]深入jar包:从jar包中读取资源文件 精华帖 (3) :: 良好帖 (15) :: 新手帖 (9) :: 隐藏帖 (0) 作者 正文 Heart.X.Raid 等级: 性别: 文章: 72 ...

  6. 在WinRT中读取资源文件

    在.Net Framework程序中,我们经常以如下方式读取程序集中的资源文件: Assembly readAssembly = Assembly.GetExecutingAssembly();    ...

  7. Java项目中读取properties文件,以及六种获取路径的方法

    下面1-4的内容是网上收集的相关知识,总结来说,就是如下几个知识点: 最常用读取properties文件的方法 InputStream in = getClass().getResourceAsStr ...

  8. php中读取大文件实现方法详解

    php中读取大文件实现方法详解 来源:   时间:2013-09-05 19:27:01   阅读数:6186 分享到:0 [导读] 本文章来给各位同学介绍php中读取大文件实现方法详解吧,有需要了解 ...

  9. matlab中读文件的行数_Matlab中读取txt文件的几种方法

    Matlab中读取txt文件的几种方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如test.txt文件,内容为"17.901 -1.1 ...

最新文章

  1. Spring servlet
  2. 【Network Security!】DOS基本命令与批处理(看不懂来打我)
  3. ASP.NET 会话状态
  4. 【洛谷】【动态规划/二维背包】P1855 榨取kkksc03
  5. iOS系列教程 目录 (持续更新...)
  6. 计算机在管理会计应用中的作用,计算机在现代管理会计中的应用(共3736字).doc...
  7. c# dynamic 无法创建 泛型变量的问题
  8. Java面向对象之抽象方法抽象类、接口的使用
  9. css中em单位和rem单位
  10. .NET程序集(Assembly)
  11. RFID射频识别技术介绍及简单应用
  12. 火狐浏览器配置webDriver
  13. “小而美”走到十字路口,吉利或收购魅族助车机闭环
  14. 用max的角度来解析blender建模!
  15. IODE海洋数据门户平台简述
  16. 极路由4增强版 倒闭后无法开启开发者模式
  17. 九龙证券|服务器龙头获资金连续抢筹,尾盘主力抢筹前期大热门股
  18. 给自家人做个招聘广告,前后端和移动工程师看过来
  19. 美国大厂新员工薪资曝光! 微软最高近30万美元,TikTok低至时薪30美元
  20. 内存管理之Tagged pointer

热门文章

  1. poj2480(利用欧拉函数的积性求解)
  2. automaticallyAdjustsScrollViewInsets的作用
  3. VS2010安装帮助文档出现错误
  4. 编译安装 apache 2.4.6
  5. dbgrideh的功能
  6. fastclick库的介绍和使用
  7. HTML入门第一和第二章
  8. 面向过程、面向函数、面向对象的区别浅谈
  9. 1070: [SCOI2007]修车
  10. Bootstrap学习笔记(四)-----Bootstrap每天必学之表单