為什麼要做單元測試

2021-08-29 06:34:22 字數 926 閱讀 6977

我們幾乎都是以這樣的順序做開發:寫若干**,然後執行一下,如果有問題,就做除錯,查出 bug,修改**,然後再執行一下,直到沒有問題,然後接著寫**。

我也一直是這樣做的,到現在也是。以前每次我寫完 200 行**,然後就啟動伺服器執行一下,結果發現問題,我會想:「天哪,我又要大幹一場」。於是從 jsp 開始仔細檢查**,直到發現我認為有問題的地方,除錯,修改,然後重新啟動 web 伺服器,開啟瀏覽器,幾分鐘後發現問題還是沒解決,然後又去看**。

後來每次我寫完 20 行**,我就啟動伺服器執行一下,結果發現問題。這回我不再從 jsp 頁面看起,而是僅僅檢查我剛寫的那 20 行,並且沒多久就找到問題所在。修改完後重新啟動伺服器,開啟瀏覽器,進入指定的頁面,發現問題解決了。這樣比以前輕鬆了不少,但是頻繁的啟動伺服器實在令人厭煩。

再後來我每次寫完 20 行**,我不再啟動伺服器了,而是寫乙個 main 方法,將我剛才完成的那個函式執行一次。寫這個 main 方法花了我 3 分鐘,但是每次執行花不到 5 秒。我執行 main 方法,結果發現問題。經過 3 次修改,main 方法終於輸出了我想要的結果。3 次修改花了我不到 10 分鐘。於是我啟動伺服器,發開瀏覽器,進入指定的頁面,發現一切 ok。

隨著 main 方法越來越多,我發現這些 main 方法給它所在的類帶來了很多不必要的 import。於是我想辦法把它們放到另乙個類去,提取它們的公共部分做成父類。

現在,做測試已經變得非常簡單,而觀察 main 方法的輸出變成了一件煩人的事情。於是我加上了許多判斷語句,判斷測試結果中是否有我想要的資料,如果沒有則丟擲異常。這樣我每次執行測試,只要沒有丟擲異常,我就不用去看輸出了。

後來我發現了 junit,它所做的事情和我的完全一樣,但是它用起來更加方便,比如它可以一下子把所有的測試都執行一遍,而不用像我這樣執行乙個又乙個的 main。

同最初相比,我現在已經輕鬆很多了。如果您還在想我最初那樣做開發,建議您慢慢的改過來。

為什麼需要單元測試

軟體開發的標準過程包括以下幾個階段 需求分析階段 設計階段 實現階段 測試階段 發布 其中測試階段通過人工或者自動手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。測試過程按4個步驟進行,即單元測試 整合測試 系統測試及發版測試。其中功能測試主要檢...

為什麼需要單元測試

軟體開發的標準過程包括以下幾個階段 需求分析階段 設計階段 實現階段 測試階段 發布 其中測試階段通過人工或者自動手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。測試過程按4個步驟進行,即單元測試 整合測試 系統測試及發版測試。其中功能測試主要檢...

為什麼需要單元測試

軟體開發的標準過程包括以下幾個階段 需求分析階段 設計階段 實現階段 測試階段 發布 其中測試階段通過人工或者自動手段來執行或測試某個系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。測試過程按4個 步驟進行,即單元測試 整合測試 系統測試及發版測試。其中功能測試主要...