學習測試驅動開發之前,應當正確理解一下單元測試的概念,學習單元測試之後可以清楚的知道所謂的單元為單一職責的乙個方法即乙個方法只做一件事情,這也符合物件導向的單一職責的原則。因此單元測試的概念可以籠統的理解為:針對乙個工作單元設計的測試。
單元測試有各種不同的編寫方式,但所有單元測試有些共同的特徵:
1.**的隔離性知道了什麼是單元測試,那麼我們就應該很清楚的知道如果進行乙個單元測試,測試的範圍應該不超越要測試的內容邊界,如果一旦超過了測試邊界,那麼就值得我們去深思一下,我們做的是不是單元測試了。2.與團隊其他人員**的隔離性
3.有針對性
4.可**性
5.可重複的
什麼樣的測試不是單元測試呢?我們在乙個系統中寫出乙個個單元,這些單元難免與系統的其他部分有交叉性如資料庫、其他系統或第三方產品系統,從而造成了被測**與其他部分存在邊界,因此測試時,如果產生問題有可能穿越幾層**,從而使測試失去了針對性,違背了單元測試背後的內容:只測試這個方法中的內容。跨邊界時還會產生另外乙個問題,特別是邊界是乙個共享資源時如資料庫,與團隊中的其他成員共享資源時,可能會汙染他們的測試結果,例如,當自己執行測試寫入值再讀取時,其他成員也在處理同一**,有這樣就造成了測試的相互干擾,造成了測試環境的不穩定性。
並不是說那些跨過測試類或方法的測試就沒有意義了,一組**如果不能整合到更大的系統中,其價值是有限的。因此整合測試非常的重要,它是衡量整個系統的健康程度,所以整合測試也應該在開發過程中建立。常見的一種做法是 按特徵劃分工作單元並通過單元測試,然後整合測試,確保工作單元可以使用其他部分單元或被其他部分正常使用,因此我們應該-早整合,常整合。
以上不知理解是否正確歡迎各位大俠拍磚。
測試驅動開發 JUNIT 單元測試類
單元測試需要構造資料 而且會考慮到事務的回滾等等問題,測試 的構建如下 路徑問題 1 在 src 目錄下 runwith org.springframework.test.context.junit4.springjunit4classrunner.class contextconfiguratio...
單元測試之Django單元測試
每個應用,自帶tests.py 整合在django的專案檔案裡,更多是開發人員寫django自動的測試執行 3.1 前後置方法執行特點 django.test.testcase類主要由前 後置處理方法和test開頭的方法組成 特點 繼承於django.test.testcase 測試用例都是test...
單元測試測試之unittest
首先我們先理解單元測試是誰做的 開發 然後我們測試會寫 之後,我們也可以自己做單元測試 那麼單元測試是做什麼?對某個功能去測試 單元測試測試什麼?類裡面的方法 單元測試怎麼測?建立物件 呼叫方法 傳參 通過傳遞多組資料來測試不同的情況 單元測試的框架有 unittest 和 pytest 學會了un...