您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > Nunit
利用TestDriven和NUnit進行單元測試
作者:網(wǎng)絡轉載 發(fā)布時間:[ 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))] 屬性

  這個屬性其實非常有用處,它表明這個函數(shù)會拋出一個預期的異常。在一個項目中,異常的處理是不可避免的。如果異常處理機制不好的話,會給程序帶來相當大的混亂。也許你的程序充滿了try,catch,但是確總也捕捉不到自己想要的異常;靵y的異常對于程序員來說是災難。

[Test]
[ExpectedException(typeof(InvalidOperationException))]
public void ExpectAnException()
{
throw new InvalidCastException();// 這個地方拋出了非預期的異常,所以測試方法失敗。
}

  2.8 [Ignore("name")]屬性

  這個屬性也挺有用處,它表示這個測試方法會被忽略掉。也許你的代碼進行了一些升級,以前的測試方法已經不再重要,但是你仍然希望保留它們。那么你盡可以把它們標志成Ignore,然后統(tǒng)一放到一個文件或者Region中,以做存檔之用。

[Test]
[Ignore("ignored test")]
[ExpectedException(typeof(InvalidOperationException))]
public void IgnoredTest()
{
throw new Exception(); // 如果可以運行這個測試方法,那么這個方法不會通過測試,但是現(xiàn)在它已經被忽略掉了。
}

  2.9 [Platform("SupportedPlatform")]屬性

  這個屬性也相當實用,它表明這個測試方法會運行在指定的平臺上。大家都知道,.Net Framework有幾個版本,還有各種版本的Windows系統(tǒng)。不同的版本對于某些類庫或者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下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd