在UnitTest中读取*.config文件的郁闷

- -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文件里的参数值emdgust.gif

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269474.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JQuery系列(4) - AJAX方法

jQuery对象上面还定义了Ajax方法($.ajax()),用来处理Ajax操作。调用该方法后,浏览器就会向服务器发出一个HTTP请求。 $.ajax方法 $.ajax()的用法主要有两种。 $.ajax(url[, options]) $.ajax([options]) 上面代码中的url&#xff…

android自定义渐变色,Android设置背景渐变色

效果如图,本章只谈背景渐变色,仪表盘下一篇文章实现步骤,只需两步:1.在res/drawable中新建一个gradual_color_bg.xml内容如下:android:startColor"#aa000000" 渐变起始色值android:centerColor""…

mac安装npm

brew install node npm install 打包 启动项目 npm run dev 1、npm介绍 npm是基于nodejs的包管理器 从npm服务器下载别人编写的第三方包、模块到本地使用 从npm服务器下载安装别人编写的命令行程序到本地使用 将自己写的包、模块或者命令行程序上传到npm服务器、共别人下…

tarjan求LCA模板

废话不多说&#xff0c;模板拿来。 1 # include <iostream>2 # include <cstdio>3 # include <cstring>4 # include <string>5 # include <cmath>6 # include <vector>7 # include <map>8 # include <queue>9 # include <c…

mac安装dubbo-admin

访问 https://github.com/apache/dubbo-admin 1&#xff1a;找到dubbo-admin git下载地址 2:git下载项目 3:执行 mvn clean install 执行 zmvn clean package -Dmaven.test.skiptrue 执行 java -jar dubbo-admin-0.3.0-SNAPSHOT.jar mac电脑安装npm 执行 brew install …

Mac下使用终端查看某个端口号对应的进程和杀死进程

查看端口号对应的进程 打开终端&#xff0c;输入lsof -i tcp:port&#xff0c;port即为端口号&#xff0c;如8080 如回车之后结果如图&#xff1a; 使用kill -9 PID

创建基于AJAX技术的Scribble应用程序

简介ASP.NET Atlas是一套丰富的类库&#xff0c;用于ASP.NET开发AJAX风格的应用程序。本文试图解说Atlas框架的一般性特征&#xff0c;由于Atlas是一个庞大的库&#xff0c;故本文集中探讨Atlas的两个最重要的特征&#xff1a;1. 能够从客户端脚本中调用服务器端web服务2. 使得…

android resolvesize方法,Android 自定义View中onMeasure()中使用resolveSize()是什么意思?

缥缈止盈public static int resolveSize(int size, int measureSpec) { int result size; int specMode MeasureSpec.getMode(measureSpec); int specSize MeasureSpec.getSize(measureSpec); switch (specMode) { case MeasureSp…

mac版idea插件安装位置

cd /Users/xxxx/Library/ApplicationSupport/JetBrains xxx 替换为自己的用户名 ls cd IntelliJIdea2020.1 cd plugins

android listview 最大行数,android中的ListView数据量大时如何提高效率。。。。

数据量大&#xff0c;这牵涉到2个问题。1. 一个空ListView加载的数据项很多2. 已加载很多数据项的ListView如何优化效率对于问题1&#xff1a;一个空ListView加载的数据项很多一般就是动态加载&#xff0c;仅在需要加载的时候加载数据项。比如View只能显示10项&#xff0c;当滚…

從三種方式看SQL的使用程度

以下三種方式﹐實現的是同一功能﹐也是我同一天中實現 的三種方式。記載在這里不為別的﹐只為對自己一點SQL的小小總結吧。 UpdateTEMP_PP_SH_MFG_SCH SetMFG_SCH_JOBNO Left(MFG_SCH_JOBNO,6)CASELEN(RIGHT(MFG_SCH_JOBNO,4)ID) WHEN1THE…

android手机用多久会卡机,你知道Android手机用久了会卡,而iPhone则不会是为什么吗?...

原标题&#xff1a;你知道Android手机用久了会卡&#xff0c;而iPhone则不会是为什么吗&#xff1f;如果有人问为什么iPhone能成为手机行业当之无愧的领头羊&#xff1f;为什么那么多人抢着入手iPhone X&#xff1f;为什么黄牛只会炒iPhone手机。我想大多数人的回答就是&#x…

BaaS后端即服务 - 概念篇

摘要&#xff1a; 什么是BaaS&#xff1f; BaaS&#xff08;Backend as a Service&#xff09;是一种新型的云服务&#xff0c;旨在为移动和Web应用提供后端云服务&#xff0c;包括云端数据/文件存储、账户管理、消息推送、社交媒体整合等。BaaS是垂直领域的云服务&#xff0c;…

使用maven构建的Spring boot项目在开始搭建的时候出的一些错误

首先&#xff0c;先构建一个maven项目&#xff0c;构建好了之后&#xff0c;会有一个错误,先说明一下&#xff0c;我生成maven项目时jre给我自动选择的是1.5版本的&#xff0c;而本人安装的是1.8的 然后&#xff0c;我们要消除这个错误&#xff0c;发现是缺少了一个javax.servl…

用计算机计算性别,2018预测生男生女计算器 超准的怀孕计算器查生男生女

外面的大雪不管是如羽毛般飘飞的浪漫还是积雪的盛装都会让夫妻感受到爱情的情愫&#xff0c;有的人在这个时候也计划着在2018年的时候备孕&#xff0c;但是对于各种算术以及数字都难不倒的备孕爸妈来说什么算术都是小菜一碟&#xff0c;2018预测生男生女计算器更是他们的福音&a…

html分享插件,10个jQuery插件分享

10个jQuery插件分享Sponsor发觉现在国外的前端人员很有创意&#xff0c;每个精品jQuery插件大部分来自国外&#xff0c;所以我很欣赏他们。今天为大家带来一些有意思的jQuery插件&#xff0c;这些jQuery有图片类插件、Tool Tips类插件、文字、绘图、排版等&#xff0c;我想这些…