NUnit 使用方法(二) 其他屬性 part – 1

在上篇 NUnit 使用方法(一) 常見屬性 裡有稍微介紹一些基本的屬性,其實 NUnit 還有其它實用的屬性,這篇就來繼續介紹。

  • [ExpectedException] :
    預期這個 Test Case 會丟出 Exception,如果沒有得到預期的 Exception 這個 Test Case 就會 Fail。
    舉例來說,像是如果用任何數除以零,都會得到 DivideByZeroException,所以我們就可以在 Test Case 前面設定 ExpectedException,如下:

    [Test]
    [ExpectedException("System.DivideByZeroException")]
    public void testException() {
    int zero = 0 ;
    int number = 2 / zero;
    }
  • [TestFixtureSetUp] / [TestFixtureTearDown]:
    之前有介紹過 [SetUp]/[TearDown],分別為每個 Test Case 的前置動作,與每個 Test Case 的結束動作,TestFixtureSetUp/TestFixtureTearDown 的功能也是相似的,只是不是以每個 Test Case 為單位,而是以每個 TestFixture 為單位。
    舉例來說,如果要測試資料庫的相關操作,寫在 setUp 的話,每個 Test Case 都必須做一次連線的動作,這樣下來會耗費相當多的資源,也可能會增加測試時間,因此,如果寫在 TestFixtureSetUp 裡,只要連線一次,之後的 Test Case 就可以直接使用,不必重覆再作連線資料庫的動作。

    螢幕快照 2014-06-17 上午10.42.00
    如上圖,可以看到 TestFixtureSetUp/TestFixtureTearDown 只會作用在整個 TestFixture 起始跟結尾,而 setUp/tearDown 則是作用在每個 Test Case 的起始跟結尾。

  • [Explicit]
    在 Test Case 或 TestFixture 使用這個屬性,在執行全部 Test Case 的時候會去忽略掉這個 Test Case 或 TestFixture,但如果單獨去選擇這個 Test Case 或 TestFixture,則會執行。
    那跟上篇介紹的 [Ignore] 屬性差別在哪呢?
    如果使用 [Ignore] 屬性,這個 Test Case 會整個被忽略掉,即使去指定要執行這個 Test Case 也是不會被執行的,只有將 [Ignore] 屬性拿掉才能執行此 Test Case。

參考文章:
NUnit 教學
NUnit 官網

廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s