2010-01-10 54 views

回答

2

NUnit是一個單元測試框架 - 而不是直接在應用程序中使用它,它允許您編寫單獨的測試套件來測試框架的組件。

單元測試是一種測試方法,您可以測試應用程序中的小型單元,而不是像整體測試那樣。

這有助於改進應用程序設計的原因是它鼓勵您以小單位編寫應用程序,每個應用程序都與其他應用程序分離,因此可以進行測試。這強化了「分離關注」的概念;確保每種類型只負責一項任務。另外,很多人使用「單元測試優先」philosphy來開發開發,因此您在編寫實際代碼之前編寫測試代碼。這裏的想法是以下序列:

  • 寫你的測試。這是一個失敗的 (紅色)測試,因爲沒有代碼到 測試。
  • 編寫代碼,使測試 有效(綠色)。
  • 現在你有一個測試,以驗證您的 代碼,你可以輕鬆地重新寫入和 改善你的代碼,具有高度信心 ,你是不是 打破它。 (重構)

您將這裏的人指的這個紅 - 綠 - 重構方法

有大量的信息,對如何處理網絡上的單元測試。只是古爾「單元測試C#」。

但是,看看NUnit's site(因爲某些原因我寫這篇文章)的文檔,並查看與單元測試相關的其他SO帖子。

此外,here是一個相當廣泛的代碼項目文章,雖然我還沒有深入研究,所以我不知道它是否有什麼好處。

也許其他具有良好引用的人可以將它們添加爲本文的評論。

3

NUnit是進行unit testing的框架。

如果你不熟悉單元測試,"Test Infected"可能是一個很好的介紹給你。這是關於jUnit(Java)而不是NUnit,但我認爲這對你來說應該不是太大問題。

有很多關於單元測試的書籍 - Roy Osherove的"The art of unit testing"非常值得推薦。

2

你在問什麼是unit testing。按照Layman的說法,不是通過運行測試應用程序,而是編寫以小塊測試應用程序的代碼。測試的一個例子是這樣的:

[Test] 
public void Get_All_People_Returns_Correct_Number_Of_People() 
{ 
    // setup 
    database.Add(new Person()); 
    database.Add(new Person()); 
    database.Add(new Person()); 

    // test 
    Assert.That(database.GetAllPeople().Count(), Is.EqualTo(3)); 
} 

你一定要了解更多關於在一般的單元測試,separation of concerns,以及良好的應用設計,你開始使用NUnit的之前。當您的應用程序設計在不會相互干擾的小型可測試模塊中時,單元測試才真正有效。

相關問題