随笔 - 10, 文章 - 0, 评论 - 33, 阅读 - 46997

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

Visual Studio 2008单元测试(2)_WEB测试

Posted on   MyNet  阅读(1796)  评论(2编辑  收藏  举报

 


      大部分系统是B/S架构,我们主要开发的是WEB页面,那么能否使用Visual Studio 2008进行WEB页面的测试吗?当然是可以的,下面我就以一个简单的WEB页面为例子,介绍如何利用Visual Studio 2008进行WEB页面的单元测试。
第一步,我们建立一个网站项目,在解决方案资源管理器里会有如下文件:
       我们在Default.aspx页面增加三个简单控件,如下图所示:

 

protected void Button1_Click(object sender, EventArgs e)
    {
        Contract Contract1 = new Contract();
        this.TextBox2.Text = Contract1.GetContractNameByGUID(this.TextBox1.Text);
    }

 

       其中包括二个文本框,一个按钮,主要功能为:TextBox1可以输入合同的编号,通过点击Button1按钮,可以获取合同名称,然后通过TextBox2文本框显示。下面,我们通过Visual Studio 2008对这个简单的页面进行单元测试。
     第二步:新增Web测试
       不知道还记得我们在《Visual Studio 2008单元测试(1)_开篇》已经增加了BusinessTest测试项目,现在直接在此项目在添加Web测试,如下图所示:
       Visual Studio 2008会弹出IE页面,供我们录入Web记录,如下图所示:
       在IE页面输入要测试的URL,进行操作:
       然后我们输入合同编号,并且点击“获取合同名称”:
       我们可以录入不同的合同编号,用于测试获取的合同名称是否正确,操作完成后,点击“停止”,则完成了脚本录入的工作。
       此时,我们在Visual 2008的Web测试页面可以看到如下内容:
第三步:添加验证规则
       经过第二步的脚本录入,我们可以在窗体添加验证规则,用于测试页面是否生成了正确的合同名称,如下图所示:
       然后,会弹出添加验证规则的界面,我们需要验证“必需的属性值”,用于测试TextBox2的值是否正确,即合同名称是否正确,如下图所示:
       其中:
  • 标记名:为HTML的XML结点的名称,此处TextBox生成的HTML为结点,故设置为input。
  • 匹配属性名称、匹配属性值:用于查找XML结点,因TextBox生成的HTML为,因此设置为Name、TextBox2,即可定位此控件。
  • 属性名、所需的值:定义正确的值,用于测试正确性。TextBox生成的HTML为,故此处设置为value与10。
第四步:运行测试
点击“运行测试”按钮即可得到测试结果,如下图所示:
       总共三个WEB请求,二个测试通过,一个测试不通过,可能通过查看“WEB浏览器”、请求、响应、上下文、详细信息跟踪并找出错误信息,如下图:
       找到原因,更改脚本,重新“运行测试”,测试通过,如下图:
       Visual2008的WEB测试不支持JavaScript 和 ActiveX 控件,如何处理呢,引入MSDN里的话:
       某些 Web 应用程序依赖 JavaScript,并且这种依赖性会影响到 HTTP 请求。您可以使用编码的 Web 测试来模拟通常由 JavaScript 执行的逻辑。例如,应用程序可能使用 JavaScript 来动态地修改表单参数。在编码的 Web 测试中,您可以通过编写代码以手动的方式对表单参数进行同样的修改。
本篇简单介绍了Visual2008最简单的单元测试功能,下期将介绍如何利用Visual2008进行数据库单元测试
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示