单元测试中常见问题及解决方案
最近,本人一个偶然的机会接触到了单元测试,这其中遇到了不少的问题。虽然这些问题,都不算什么,但是转念一想,还是记下来吧。以便以后的查阅及有此方面困惑的朋友也能有所借鉴。
问题大都集中在测试方法上所附加的几个特性上。
[HostType("ASP.NET")]属性说明主机类型为ASP.NET网站,如果注释掉此属性,那么系统将默认以类库进行测试。
[AspNetDevelopmentServerHost]属性和[AspNetDevelopmentServer]都是用来描述ASP.NET Development Server服务器的属性。
[UrlToTest]特性说明测试的URL地址,因为有可能测试远程的网站、服务等内容,因此,有时此属性也是非常必要的。
总的来说,测试有三种方案:
1.远程网站测试。这时需要将ASP.NET Development Server相关属性全部注释掉,仅适用[UrlToTest]特性,并且将本特性指向远程的地址。
2.类库测试。这种测试其实也比较常见。问题是要合理组合这几个特性才能正常工作。首先要将主机类型、Development Server等等特性全部去掉,并且将[UrlToTest]也注释,这样基本上就能正常工作。但是有一种情况比较特别,比如,那个类库项目有个***.config配置文件,这时如何办呢?其实也简单,直接将类库项目的配置文件拷贝过来,将其名称修改为“***.dll.config”即可。
3.本地网站测试,即Development Server测试。这时基本上不用更改默认添加的特性即可。但这时很容易在测试时出现***没有办法实例化对象等等问题。问题何在?因为你是以网站形式测试的,所以你要首先让网站启动啊,对吧?直接将[UrlToTest]特性设置为:[UrlToTest(http://localhost:1377/default.aspx)]形式,这样只要网站一启动成功,那么剩下的测试就基本上没啥可搞的了。
注:由于本文是根据前一阵的实践所得,距离写本文时有段时间了,因此,一些地方有可能记忆得不准确,另外,本人实践过程中也难免犯各种错误,因此,总结不当之处请不惜指出。谢谢!!