北大青鸟|上海北大青鸟|软件测试培训|软件开发培训|上海软件测试培训|网络营销培训|

您现在的位置:上海电脑学校 IT精英培训基地 >> 大学生就业直播 >> 浏览文章

【大学生就业直播】单元测试中的WatiN
发布来源:上海北大青鸟【官方网站】    发布时间:2013-8-25 9:27:17    浏览次数: 917

用WatiN对ASP.NET页面进行单元测试 软件测试
  单元测试是应用程序设计的一个重要部分,它可应用于程序的多个层次。本文将主要关注用户界面层的单元测试。我们将使用WatiN 测试ASP.NET应用程序。
  什么是WatiN?
  WatiN 是一个源自Watir的工具,用于测试Web页面。WatiN表示Web Application Testing in .NET。
  我们要测试什么?
  在本文中我们将测试一个简单的ASP.NET页面,用这个页面来演示认同、接受(agreement aclearcase/" target="_blank" >cceptance)的场景。用户在文本框中输入名字,点击“I agree”复选框,然后按下submit按钮。这显然是一个非常简单的页面,在你熟悉了WatiN框架的工作机制后,就可以将这里的理念用于大型页面的测试了。
  测试认同(Agreement)页面:
  向解决方案添加一个类库项目,并为其添加对测试工具(我这里用的是MbUnit,但你完全可以使用NUnit或VSTS的测试项目)和WatiN库的引用。你可以在这里下载WatiN。
  下面的测试代码用来确保用户已经认同。
  [TestFixture(ApartmentState = ApartmentState.STA)]public class TestAgreementPage{ [Test] public void TestCanAcceptUserAgreement() { IE ie = new IE(ConfigurationManager.AppSettings["DefaultPageUrl"]); ie.TextField("txtName").TypeText("Mohammad Azam"); ie.CheckBox("chkAgree").Checked = true; ie.Button("btnAgree").Click(); Assert.AreEqual("Valid", ie.Span("lblMessage").Text); }}这个类有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){ lblMessage.Text = "Valid"; }现在,如果你运行测试它会通过。但是,好像不太正确。如果我们把这一行测试代码删掉:
  ie.CheckBox("chkAgree").Checked = true; 再次运行测试,依然能通过。这可不对!应当只有在CheckBox选中时才可通过。将页面的Code behind代码改一下。
  protected void btnAgree_Click(object sender, EventArgs e){ if (chkAgree.Checked) { lblMessage.Text = "Valid"; }}现在,测试只有在CheckBox选中时才可通过了。
 

 

关键词:上海北大青鸟

上一篇: 软件缺陷跟踪   下一篇: 北大青鸟专家谈谈关于软件测试技能
  友情链接(交换友情链接请联系张老师)