您的位置:软件测试 > 开源软件测试 > 开源单元测试工具 > Nunit
利用TestDriven和NUnit进行单元测试
作者:网络转载 发布时间:[ 2014/1/2 9:46:41 ] 推荐标签:NUnit 单元测试

  2.6 [Test]属性

  这个属性是有用处的,因为它表明这是一个测试方法。

 [TestFixture]
 public class TestSimpleCalculator
 {
  SimpleCalculator myMath;
  private double a;  // a = 3.0
  private double b; // b = 5.0

  // 这是一个测试方法
  [Test]
  public void Add()
  {
   Assert.AreEqual( a, 3.0 ); // 返回真
   Assert.AreEqual( b, 5.0 );// 返回真
   a = myMath.Add( a, b );
   Assert.AreEqual(a, 7.0, "The expect result is 7, and the actual result is 8");// 返回假,并且会打印出错误信息
  }
 }

  2.7 [ExpectedException(typeof(OneSupportedException))] 属性

  这个属性其实非常有用处,它表明这个函数会抛出一个预期的异常。在一个项目中,异常的处理是不可避免的。如果异常处理机制不好的话,会给程序带来相当大的混乱。也许你的程序充满了try,catch,但是确总也捕捉不到自己想要的异常。混乱的异常对于程序员来说是灾难。

[Test]
[ExpectedException(typeof(InvalidOperationException))]
public void ExpectAnException()
{
throw new InvalidCastException();// 这个地方抛出了非预期的异常,所以测试方法失败。
}

  2.8 [Ignore("name")]属性

  这个属性也挺有用处,它表示这个测试方法会被忽略掉。也许你的代码进行了一些升级,以前的测试方法已经不再重要,但是你仍然希望保留它们。那么你尽可以把它们标志成Ignore,然后统一放到一个文件或者Region中,以做存档之用。

[Test]
[Ignore("ignored test")]
[ExpectedException(typeof(InvalidOperationException))]
public void IgnoredTest()
{
throw new Exception(); // 如果可以运行这个测试方法,那么这个方法不会通过测试,但是现在它已经被忽略掉了。
}

  2.9 [Platform("SupportedPlatform")]属性

  这个属性也相当实用,它表明这个测试方法会运行在指定的平台上。大家都知道,.Net Framework有几个版本,还有各种版本的Windows系统。不同的版本对于某些类库或者API的支持是不一样的。比如WMI查询语句的某些用法在Win2000上无法通过测试。某些类库在.net1.1中无法找到,如果指定了平台,一切都变得井井有条了。

[Test]
[Platform("NET-1.1")]
//更多支持的平台请查阅NUnit的文档
public void DotNetOneOneTests()
{
Assert.AreEqual( "This case run on .Net1.1", "This method will not be executed" );  // 这个测试方法只会运行在.Net1.1的平台下。
}

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