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,但是確總也捕捉不到自己想要的異常;靵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的平臺下。
	}