引言
单元测试是应用程序设计的一个重要部分,它可应用于程序的多个层次。本文将主要关注用户界面层的单元测试。我们将使用WatiN 测试ASP.NET应用程序。
什么是WatiN?
WatiN 是一个源自Watir的工具,用于测试Web页面。WatiN表示Web Application Testing in .NET。
我们要测试什么?
在本文中我们将测试一个简单的ASP.NET页面,用这个页面来演示认同、接受(agreement acceptance)的场景。用户在文本框中输入名字,点击“I agree”复选框,然后按下submit按钮。这显然是一个非常简单的页面,在你熟悉了WatiN框架的工作机制后,就可以将这里的理念用于大型页面的测试了。
这里是待测页面的截图:
![]() |
| 图1 |
测试认同(Agreement)页面
向解决方案添加一个类库项目,并为其添加对测试工具(我这里用的是MbUnit,但你完全可以使用NUnit或VSTS的测试项目)和WatiN库的引用。你可以在这里下载WatiN。
下面的测试代码用来确保用户已经认同。
|
这个类有TestFixture特性(Attribute),STA值确保该测试运行于STA(Single Threaded Apartment)状态下。这是因为测试代码要加载IE。
WatiN中的IE类完成了主要工作。IE类打开IE,通过name或id来引用html控件。这一行ie.TextField("txtName").TypeText("Mohammad Azam"),引用了id为“txtName”的文本框。浏览器加载后,WatiN会将值“Mohammad Azam”写入id为“txtName”的文本框。这个过程在测试时你会看到的。然后id为“chkAgree”的复选框会被选中。最后,WatiN会按下提交按钮,窗体被提交。
运行测试,失败。因为名为“lblMessage”的Label从未被赋值为“Valid”。加上这段代码:
protected void btnAgree_Click(object sender, EventArgs e) |
现在,如果你运行测试它会通过。但是,好像不太正确。如果我们把这一行测试代码删掉:
| ie.CheckBox("chkAgree").Checked = true; |
再次运行测试,依然能通过。这可不对!应当只有在CheckBox选中时才可通过。将页面的Code behind代码改一下。
| protected void btnAgree_Click(object sender, EventArgs e) { if (chkAgree.Checked) { lblMessage.Text = "Valid"; } } |
现在,测试只有在CheckBox选中时才可通过了。
| 共2页: 1 [2] 下一页 | ||
|
|
||||
| · 微软出价446亿美元收购.. · 技术人求职简历完备手册 · 北漂技术人90天求职纪实 · 勇闯IT培训黑色围城 · 隐私保护技术探讨 · Windows Server 2008专.. · ASP.NET 2.0基础开发指.. · WCF开发基础 |
· 路由器设置与口令恢复 · 华为员工自杀频频拷问.. · VC++基础开发专题 · NAC安全访问控制 · 2008年春季英特尔信息.. · Visual Studio 2005开.. · Linux——从菜鸟到高手 · 如何优化IT 控制能耗 |
|||
|
||||
| · iSCSI应用与发展 · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · SQL Server入门到精通 |
· 病毒查杀专题 · 国际文档格式标准开战 · Linux防火墙 · 路由器设置与口令恢复 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · ADSL应用面面俱到 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · iSCSI应用与发展 · RAID——磁盘阵列基础 · 身份认证技术 |
· 病毒查杀专题 · 清除流氓软件——51CTO.. · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 |
|||