• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

在.NET环境中使用单元测试工具Nunit

发布: 2008-10-22 10:16 | 作者: 网络转载 | 来源: 测试时代采编 | 查看: 203次 | 进入软件测试论坛讨论

领测软件测试网

SetUp 和 Teardown Attributes简介

    在写Unit Tests的时候,有时你会需要在执行每一个test method之前(或之后)先作一些预备或善后工作。当然,你可以写一个private的method,然后在每一个test method的一开头或最末端呼叫这个特别的method。或者,你可以使用我们要介绍的SetUp及Teardown Attributes来达到相同的目的。如同这两个Attributes的名字的意思,有Setup Attribute的method会在该TextFixture中的每一个test method被执行之前先被Test Runner所执行,而有Teardown Attribute的method则会在每一个test method被执行之后被Test Runner所执行。一般来说,Setup Attribute及Teardown Attribute被用来预备一些必须的objects(对象),例如database connection、等等。上面的程序代码示范了使用这个attribute的方法。

    ExpectedException Attributes简介

    有的时候,你希望你的程序在某些特殊的条件下会产生一些特定的exception。要用Unit Test来测试程序是否如预期的产生exception,你可以用一个try..catch的程序区段来catch(捕捉)这个exception,然后再设一个boolean的值来证明exception的确发生了。这个方法固然可行,但是太花费功夫。事实上,你应该使用这个ExpectedException attribute来标示某个method应该产生哪一个exception,如同下面的范例所示:

namespace UnitTestingExamples

{

using System;

using NUnit.Framework;

[TestFixture]
public class SomeTests
{

[Test]

[ExpectedException(typeof(InvalidOperationException))]
public void Test1()

{

// Do something that throws an InvalidOperationException
}

}

}

    如果上面的程序被执行的时候,如果一旦exception发生,而且这个exception的type(类型信息)是InvalidOperationException 的话,这个test就会顺利通过验证。如果你预期你的程序代码会产生多个exception的话,你也可以一次使用多个ExpectedException attribute。但是,一个test method应该只测试一件事情,一次测试多个功能是不好的做法,你应该尽量避免之。另外,这个attributes并不会检查inheirtance的关系,也就是说,如果你的程序代码产生的exception是继承自InvalidOperationException 的subclass(子类化)的话,这个test执行的时候将不会通过验证。简而言之,当你使用这个attribute的时候,你要明确的指明所预期的exception是哪个type(类型信息)的。

    Ignore Attributes简介

    这个attribute你大概不会经常用的,但是一旦需要的时候,这个attribute是很方便使用的。你可以使用这个attribute来标示某个test method,叫Test Runner在执行的时候,略过这个method不要执行。使用这个Ignore attribute的方法如下:
   
namespace UnitTestingExamples
{
using System;
using NUnit.Framework;

[TestFixture]
public class SomeTests
{
[Test]
[Ignore("We''re skipping this one for now.")]
public void TestOne()
{
// Do something...
}
}
}

    如果你想要暂时性的comment out一个test method的话,你应该考虑使用这个attribute。这个attribute让你保留你的test method,在Test Runner的执行结果里面,也会提醒你这个被略过的test method的存在。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

43/4<1234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网