2011-01-27 53 views
1

首先,我不想做TDD。我想寫一些代碼,然後爲重要的東西寫單元測試。如何從單元測試開始?

我知道這些工具。我知道如何編寫單元測試。

我寫了一些代碼(夫婦離開課程),我不知道從哪裏開始。我錯過了語義。

如何挑選什麼單元測試?

我應該單元測試每班額外嗎?

我應該嘗試模擬方法參數的每種可能的變化嗎?

+0

用什麼語言?不要*真的*重要,因爲你應該努力以任何語言全面覆蓋,但不同的語言有不同的工具可用。 – 2011-01-27 09:27:56

回答

2

單元測試的想法是測試代碼段。我們在我的公司使用TDD,它可以創建。我們爲每個可能的函數選項編寫測試。所以要回答你的三個問題。

  1. 如何拿起什麼單元測試?

    對沒有智能的代碼或函數編寫單元測試是沒用的。這實際上是當你嚴格遵循TDD時需要發生的事情。但是,如果顯而易見的是函數返回的結果,並且你確定什麼都不會出錯,那麼你可能不需要爲它寫一個測試。雖然最好這樣做。

  2. 我應該單元測試每班額外嗎?

    你究竟是什麼意思?如果問題是你需要測試課程,答案是否定的。單元測試用於測試最小的一段代碼。主要是函數和構造函數。你想知道的是,如果你的函數給出了你想要的結果,並且你希望它返回所需的結果或拋出一個很好的處理異常,不管你發送給函數的參數值是多少?我應該嘗試模擬方法參數的每種可能的變化?

    您應該。這是編寫單元測試的總體思路。你想測試一段代碼,排除每一件可能出錯的事情。這裏參數是最重要的。如果一個字符串參數包含html例如會發生什麼?而如果一個必需的參數是NULL呢?或者是一個空字符串。應該測試每個選項以排除可能出錯的可能事情。

如果你使用.net框架,那麼看看Moq框架是非常有趣的。簡而言之,它是一個框架,允許您創建某種類型的假對象,並且可以根據該對象驗證您的測試,以檢查結果是否如預期的那樣使用多個不同的參數和返回值。您可以在Scott Hanselmans blog post中閱讀。

0

我應該嘗試模擬方法的 參數每 可能的變化?

您應該看看Pex,它可以爲您提供最大代碼覆蓋率的參數化測試生成輸入值。