2011-10-02 149 views
2

背景NUnit的VS手動單元測試

我最近嘗試開發針對特定應用的迴歸測試套件的測試。我一直在使用NUnit,並沒有任何問題。

我跑進發送參數NUnit的測試,對於沒有滿意的答案似乎存在問題。

問題

說我實現了加載類,運行啓動,測試和拆卸方法按順序捕獲異常,然後卸載組件的簡單的單元測試。這樣做與使用NUnit有什麼不同?

在這種情況下,我可以很容易的參數傳遞給我的測試用例,或做其他任何瘋狂的事情我可能會拿出。但是我的擔心是我放棄NUnit而導致的損失。

+2

爲什麼你需要傳遞參數給一個單元測試?聽起來就像你正在測試的不僅僅是一個單元... –

+0

測試是遠程執行的,並且需要關於誰爲了記錄目的而執行它們的信息。一個有效的問題,但不幸的是不是我在這裏問的。 – prestomanifesto

+2

@nathangonzalez根據你正在測試的內容,你可能處於一種情況,即你想用稍微不同的數據多次運行相同的測試。參數化測試可以很容易地做到這一點,而無需多次重複基本相同的測試。 –

回答

6

你輸了什麼?你的時間。

如果你正在努力爲客戶或企業,它們是(大概)付錢給你解決業務問題,而不是編寫基礎結構代碼。爲了解決業務需求,可能需要一些基礎設施。在這種情況下,顯然不是。你正在重新發明輪子。

不要陷入不發明陷阱。使用NUnit。它支持parameterized tests。如果NUnit不符合您的需求,請調查MbUnit or xUnit.net。或者看看SpecFlow等等的BDD風格。或者FitNesse進行驗收測試。這只是一個部分列表!

如果您爲了學習目的自己編寫測試框架,太棒了!如果沒有,你正在浪費你的時間和/或你公司的錢。

尋址技術方面

JUnit的一個long airplane trip在最初創建。那時候沒有太多的選擇。編寫測試框架並不是一個巨大的項目。編寫功能全面且易於使用的功能更加困難。編寫測試運行程序,IDE集成,CI集成,代碼覆蓋集成等顯然比較困難。和它已經完成。除非你是Ayende Rahien,否則不要這樣做!

除了整合,你也失去了你不執行任何features of NUnit(有很多)。我沒有使用所有這些,但我確實依賴其中的很多。

(從我的意見移動)

+0

從生產力的角度來看非常有趣的答案,但我仍然對這個問題的技術方面感興趣。 – prestomanifesto

+0

你是什麼意思的「問題的技術方面」?這個答案不是很滿意嗎? –