2008-09-21 46 views

回答

0

你是什麼意思它是如何工作的?

你用[的TestFixture]與[測試]你的測試定義你的測試類

這只不過是一個測試框架更多,你仍然要編寫測試和所有的爵士樂:)

1

1)你想在.NET項目來測試一個類(MyClass的是類名,MyProject的是項目的名稱,例如)

2)添加另一個項目到您的解決方案稱爲MyProject.Tests

3)添加從MyProject的參考,MyProject.Tests這樣您就可以訪問你想從測試代碼

3)測試類在這個新項目中添加一個名爲MyClass的新類文件(與MyProject中的類相同)

4)在類中,添加你的測試這樣的代碼頁解釋 - http://www.nunit.org/index.php?p=quickStart&r=2.4.8

5)當你寫你的測試,構建解決方案。在MyProject.Tests項目文件夾中將出現一個新文件夾 - 'MyProject.Tests \ bin \ Debug'。這是假設你建立在調試模式。如果您構建在發佈模式下,它將成爲MyProject.Test \ bin \ Release。要麼會工作。在這個文件夾中,您會發現一個名爲MyProject.Tests.dll的dll文件。

6)打開nUnit測試實用程序File> Open,然後導航到#5中的文件夾以找到MyProject.Tests.dll。打開它。

7)dll中的測試應該在nUnit實用程序窗口中列出,您現在可以選擇運行哪些測試並運行它們。

注意:命名約定不是必需的,它只是我做它的方式。如果你有一個名爲'MyProject'的項目,並且你希望你的測試項目被稱爲'ArbitraryName'而不是'MyProject.Test',那麼它仍然會工作......命名約定只是幫助跟蹤到底是什麼測試。

+0

.Tests命名約定來自伴隨它的CruiseControl.NET NAnt腳本。腳本抓取以「.Tests」結尾的單元測試程序集。 – 2009-04-02 13:34:36

5

當您選擇運行一個測試,

  • 它會創建父類的測試方法的一個實例。
  • 然後它繼續運行標有TestFixtureSetup屬性的方法(如果存在的話)(一次用於測試類)。
  • 接下來是標記爲設置屬性的方法(如果存在的話)(在該類中的每個測試之前一次)
  • 接下來將執行您選擇的方法(使用Test屬性)。所有的斷言都被檢查。如果所有斷言均有效,則測試標記爲通過(在GUI中爲綠色),否則爲失敗(紅色)。如果彈出的任何異常未通過ExpectedException屬性指定,則測試失敗。
  • 然後調用標記爲Teardown屬性的方法(如果存在的話)。 (清理代碼..在班級中每次測試之後都要調用一次)
  • 最後執行用TestFixtureTeardown屬性標記的方法。 (一次性在測試課中進行所有測試)

就是這樣。 xUnit的威力在於它的簡單性。那是你在找什麼?