你学会测试了吗:测试语法之属性

发表于:2008-9-04 14:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:李永京    来源:CNBlogs

  这个简短的系列一一讲解一下.Net下测试的相关知识,希望对初学者有所帮助。

  在上一篇中我向大家介绍了几个测试工具,推荐使用TestDriven.NET。至本文完稿官方提供了TestDriven.NET-2.14.2190 Beta版(直接下载)和TestDriven.NET-2.13.2184正式版(直接下载)。此文为这个系列的第二篇,我将使用这个工具,介绍 TestDriven.NET所支持的一些重要的属性。

  属性

  TestDriven.NET支持多种单元测试框架,像 NUnit,MbUnit,MS Team System,这里我选择了最为经典的NUnit单元测试框架来介绍TestDriven.NET所支持的一些重要的属性。TestDriven.NET 其实已经支持大部分NUnit的属性,但是有些属性现在还不支持。

  在我们使用TestDriven.NET测试前,项目必须引用框架的程序集,即nunit.framework.dll,并且在每个包含测试的源文件中必须使用using语句引用该程序集,像这样:using NUnit.Framework; 在NUnit中,所有的属性都包含在Nunit.Framework命名空间里。

  首先我们依次熟悉一下这些属性。

  1.TestFixtureAttribute

  这个属性用来修饰测试类,表示这个类包含了测试方法。注意一下使用这个属性修饰类有一些限制:这个类必须是public,必须有一个缺省的构造函数。

  using System;

  using NUnit.Framework;

  namespace TestDrivenNET

  {

  [TestFixture]

  public class YJingLeeFixture

  {

  //......

  }

  }

  2.TestAttribute

  这个属性标记类的某一方法为一个测试方法,此类已经标记为一个TestFixture。一个测试方法的签名定义如下:

  [Test]

  public void TestMethod()

  {

  }注意这个方法必须没有参数。如果程序员将测试方法标记为不正确的签名,它不会运行。

  3.SetUpAttribute

  这个属性用来修饰方法,修饰后这个方法在每个测试方法被调用之前运行的,我们可以用它来重新设置一些变量,在每个方法运行之前赋值。

  [SetUp]

  public void Init()

  {

  }

  4.TearDownAttribute

  这个属性用来修饰方法,说明这个方法是在每个测试方法被调用完之后运行的,我们可以用来释放一些暂存的变量。

  [TearDown]

  public void Dispose()

  {

  }

  5.SetUpFixtureAttribute

  这个属性这个属性用来修饰类,这个类包含了SetUpAttribute或者TearDownAttribute属性,必须是public和一个缺省的构造函数。只要使用这个属性,在其命名空间下,运行测试则首先运行其中SetUpAttribute修饰的方法,在运行测试结束则运行其中 TearDownAttribute修饰的方法。注意一个命名空间下只有一个SetUpFixtureAttribute,如果这个属性在整个程序集下定义,则在整个程序集下有效。我们常常用它来设置全局的条件。

  [SetUpFixture]

  public class MySetUpClass

  {

  [SetUp]

  public void RunBeforeAnyTests()

  {

  }

  [TearDown]

  public void RunAfterAnyTests()

  {

  }

  }

  6.TestFixtureSetUpAttribute

  这个属性用来修饰方法,修饰后这个方法在fixture任何测试执行之前运行,我们常常用来初始化一些对象等,类似于类中的构造函数。

  [TestFixtureSetUp]

  public void FixtureInit()

  {

  }

  7.TestFixtureTearDownAttribute

  这个属性用来修饰方法,修饰后这个方法在fixture任何测试执行之后运行,我们常常用来释放一些资源。

  [TestFixtureTearDown]

  public void FixtureDispose()

  {

  }

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号