您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > Nunit
在VS2005利用NUnit进行测试
作者:网络转载 发布时间:[ 2013/3/21 15:28:56 ] 推荐标签:

编译项目生成dll。我们可以在NUnit主界面上点击[Project]->[Add Assembly...]来添加刚才编译生成的dll,加载成功后界面如下所示:

  点击界面上的[Run]按钮可以开始测试了。注意这种方式下是测试所有的测试方法,如果我们只想测试某几个方法,可以勾选方面前面的复选框(默认情况下复选框不出现,需要按照点击[Tools]->[Setting]打开设置界面,然后点击在[GUI]下面找到[Tree Display],勾选上“Show CheckBoxes”即可)。
  如果我们只是想单独测试某个方法,那更简单了——直接双击那个测试方法即可。
  有时候我们进行测试时还会用到一些config文件里面的配置信息,如在app.config/web.config中保存数据库连接字符串信息及其他的配置信息,为了能让NUnit测试时能读取app.config/web.config中保存的配置信息,我们需要对NUnit进行配置。
  为了演示,我们制定以下信息:
  项目名称:UnitTestDemo
  项目位置:D:BlogCodeUnitTestDemo
  项目编译模式(Debug/Release):Debug
  为了演示刚才的如何对config文件中保存的数据进行测试,我们在刚才的代码基础上编写了三个测试用例,代码如下:
[csharp] view plaincopy

    [Test] 
    public void Test0_51CTOBlog() 
    { 
        StringAssert.AreEqualIgnoringCase(ConfigurationManager.AppSettings["51ctoBlog"], "http://zhoufoxcn.blog.51cto.com"); 
    } 
     
    [Test] 
    public void Test0_CSDNBlog() 
    { 
        StringAssert.AreEqualIgnoringCase(ConfigurationManager.AppSettings["CSDNBlog"], "http://blog.csdn.net/zhoufoxcn"); 
    } 
     
    [Test] 
    public void Test0_SinaWeiBo() 
    { 
        StringAssert.AreEqualIgnoringCase(ConfigurationManager.AppSettings["SinaWeiBo"], "http://weibo.com/zhoufoxcn"); 
    } 

  同时在app.config文件的appSettings节点增加以下数据:
[csharp] view plaincopy

    <appSettings> 
        <add key="51ctoBlog" value="http://zhoufoxcn.blog.51cto.com"/> 
        <add key="CSDNBlog" value="http://blog.csdn.net/zhoufoxcn"/> 
        <add key="SinaWeiBo" value="http://weibo.com/zhoufoxcn"/> 
    </appSettings> 

  如果不在NUnit上做任何设置,我们会得到错误的结果,如下图所示:

  这时,我们可以按照如下步骤配置,点击[Project]-[Edit...]打开如下界面:

  在上图的界面中设置ApplicationBase为当前要测试的dll所在的路径,本例中为:D:BlogCodeUnitTestDemoinDebug(注意如果复制全路径到文本框中NUnit会自动更改为相对路径),因为当前项目是名为UnitTestDemo的类库项目,所以对应config文件名称为UnitTestDemo.dll.config,将其填入Configuration File Name后面的文本框中,然后我们再次点击[Run]按钮会看到测试通过。
总结
  作为xUnit体系中的一员,NUnit确实给.Net开发人员进行单元测试带来了不少方便,在早期我们一直都是使用NUnit进行单元测试的。但是也存在着一些不足之处,比如:1.在xUnit体系中的JUnit是在测试每个方法时都是新生成一个实例,而在NUnit中确实一个TestFixture只会生成一个实例,这样一来如果对要包含单元测试类中的实例数据进行更改会可能会影响到其它的测试方法(像JUnit那样每次都生成一个实例则不会产生这种情况)。2.早期大多数人以为像JUnit中一样,[SetUp]、[TearDown]只会在所有测试前、后分别执行一次,实际情况是在每个测试前、后都会执行一次,为了达到JUnit中[SetUp]、[TearDown]这样的效果,只能新增TestFixtureSetUp、TestFixtureTearDown属性。除此之外,还存在一些缺点和不足。
  所以本篇只是简单介绍了NUnit的一些用法,虽然NUnit提供了相当多的断言及Attribute,但实际用到的并不多,在这里介绍它是为介绍另一个.NET单元测试工具作铺垫。

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd