WebService 的UnitTest以及调试
对于有些特殊的项目,需要验证WebService提供的方法是否正确,比如通过Session传递数据的WebService。
看到这儿先声明一下是一些特殊的项目对WebService的特殊用途。
主要内容如下:
1、写一个WebSerivce
2、写一个WebService的单元测试
3、调试单元测试
先看一个简单的WebService:
注意,这个WebService是可以供JavaScript调用的(也是一个特殊的WebService吧,呵呵!)
我们针对HelloMethod方法进行UnitTest
注意两几:
1、调用WebSite的webservice使用DefaultWebService_Accessor,调用Webapplication则使用DefaultWebService,VS创建单元测试时会自动生成。
2、TestMethod的UrlToTest属性,可以是IIS的地址也可以是VS自带的ASP.NET的浏览工具的地址,带端口号的。但是要设置成端口号被运行一次改变一次
3、AspNetDevelopmentServerHost属性中的项目地址是可以用%SystemRootPath%
4、Session之类的在标识[ClassInitialize()]属性的方法中初始化,方法接受一个TestContext的参数
接下来是调试单元测试:
1、使用VS自带的ASP.NET程序的浏览器,在 UrlToTest属性中配置
2、运行单元测试让它显示在TestResult窗口中
3、调试->附加到进程 附加到WebDev.WebServer.EXE进程中
4、在TestResult窗口中选择调试即可。
调试之前最好先备份Web.config文件。在调试过程中不小心按了VS主菜单的停止调试,VS会修改Web.config然后下一次就都无法运行单元测试了。这个时候只需要还原Web.config即可。