注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

WatiN系列之五 Watin与Nunit结合进行测试  

2011-03-22 14:49:45|  分类: 软件测试 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

概述

 上篇文章中介绍了在VSTS中如何使用watin。本篇文章介绍如何在NUnit中使用Watin

Nunit作为一款老牌的单元测试工具,在开发人员中得到广泛的应用。

 

准备工作

 在开始介绍如何在Nunit中使用Watin之前,需要做一些准备工作。

l 下载及安装NUnit

l 创建演示Web程序

l 创建及配置测试程序

  下载及安装Nunit

   NUnit官方站点下载Window Installer

  创建演示Web程序

我们将创建一个ASP.NET网站,接下来的测试代码将是针对这个简单Web站点的。先创建一个新项目。

WatiN系列之五 Watin与Nunit结合进行测试 - 海里的贝壳 - apple的博客

接下来在解决方案中创建业务逻辑层的类库BusinessLayer,其中添加一个类Arithmetic,用于一些算术操作。

创建及配置测试程序

然后在解决方案中创建一个新的类库WebAppUITesting,这个就是测试程序。

在类库WebAppUITesting中添加应用配置文件App.config,内容如下:

<?xmlversion="1.0"encoding="utf-8"?>

<configuration>

 <configSections>

   <sectionGroupname="NUnit">

     <sectionname="TestRunner"type="System.Configuration.NameValueSectionHandler"/>

   </sectionGroup>

 </configSections>

 <NUnit>

   <TestRunner>

     <!--Valid values are STA,MTA. Others ignored.-->

     <addkey="ApartmentState"value="STA"/>

   </TestRunner>

 </NUnit>

</configuration>

 备注:Watin只能在STA下运行,Nunit确是在MTA下运行的。所以直接在Nunit中运行watin代码会报错,所以为了解决这个问题,在测试程序中加入App.config配置文件可以解决这个问题。

 

在类库WebAppUITesting中添加引用

WatiN系列之五 Watin与Nunit结合进行测试 - 海里的贝壳 - apple的博客

然后右键点击该类库,在右键菜单中选择“属性”,在属性->调试面板中,“启动外部程序”设置为Nunit.exe。这样在调试代码后会自动打开Nunit

最后解决方案的目录结构如下:

WatiN系列之五 Watin与Nunit结合进行测试 - 海里的贝壳 - apple的博客

编写测试程序,运行测试

 准备工作完成之后,把生成的被测试演示Web程序(WebApp)部署到IIS中,当然你也可以使用VS中自带的web服务器。Web页如下

WatiN系列之五 Watin与Nunit结合进行测试 - 海里的贝壳 - apple的博客

 这个站点的功能很简单,就是输入两个数字,然后提交后返回相加的结果。

然后我们就可以编写针对这个站点功能的测试代码了。我们主要编写测试用例。

 用例一输入两个数字,验证加法是否正确

用例二输入非数字字符,验证异常处理是否正确

测试代码如下:

usingSystem.Diagnostics;

usingWatiN.Core;

usingNUnit.Framework;

usingSystem;

usingBusinessLayer;

namespaceWebAppUITesting

{

   [TestFixture]

   publicclassUITesting

   {

       IEie=null;

       [TestFixtureSetUp]

       publicvoidInitTest()

       {

           ie =newIE("http://localhost/WebApp/Default.aspx");

       }

       //测试加法

       [Test]

       publicvoidAdditionTest()

       {

               intnumber1 = 1;

               intnumber2 = 2;

               //Watin测试代码

               ie.ShowWindow(NativeMethods.WindowShowStyle.Maximize); 

               ie.TextField(Find.ById("num1")).TypeText(number1.ToString());

               ie.TextField(Find.ById("num2")).TypeText(number2.ToString());

               ie.Button(Find.ById("btnCheck")).Click();                              

               //预期结果

               Arithmeticac =newArithmetic();

               stringexpected = ac.addition(number1,number2).ToString();

               //实际结果

               stringactual = ie.Span(Find.ById("lblResult")).Text;

               //断言测试结果是否正确

               Assert.AreEqual(expected,actual);        

       }

       //测试异常处理

       [Test]

       publicvoidExceptionTest()

       {

           //Watin测试代码

           ie.TextField(Find.ById("num1")).TypeText("A");

           ie.TextField(Find.ById("num2")).TypeText("1");

           ie.Button(Find.ById("btnCheck")).Click();

           //预期结果

           stringexpected ="输入字符格式不正确!";

           //实际结果

           stringactual = ie.Span(Find.ById("lblResult")).Text;

           //断言测试结果是否正确

           Assert.AreEqual(expected, actual);

       }

       [TestFixtureTearDown]

       publicvoidClearTest()

       {

           ie.Close();

       }

   }

}

 

测试结果如下:

WatiN系列之五 Watin与Nunit结合进行测试 - 海里的贝壳 - apple的博客

结束语

 Nunit中使用Watin测试思路就是这样的。如果有兴趣的话可以自己动手试试看,这是学习的最佳途径。也可以下载附件中的代码进行学习。


  评论这张
 
阅读(651)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017