單元測試框架的選擇

今天給你們介紹單元測試的概念,以Python語言爲基礎,帶你瞭解如何選擇單元測試框架。面試

單元測試

一、定義

單元測試是指,對軟件中的最小可測試單元在與程序其餘部分相隔離的狀況下進行檢查和驗證的工做,這裏的最小可測試單元一般是指函數或者類。api

二、爲何要作單元測試

從「基礎元件」開測,單元測試對象是代碼,以函數或類爲單位,完成基礎測試,在代碼封裝成「功能」後,更容易定位功能上出現的問題安全

三、單元測試用例

一般來說,單元測試的用例是一個「輸入數據」和「預計輸出」的集合。 你須要針對肯定的輸入,根據邏輯功能推算出預期正確的輸出,而且以執行被測試代碼的方式進行驗證,用一句話歸納就是「在明確了代碼須要實現的邏輯功能的基礎上,什麼輸入,應該產生什麼輸出」。框架

 

 

若是對軟件測試、接口測試、自動化測試、面試經驗交流感興趣能夠加軟件測試交流:1085991341,會有不按期的發放免費的資料連接,還會有同行一塊兒技術交流。函數

四、幾個概念

驅動代碼、樁代碼、Mock代碼
驅動代碼(Driver)指調用被測函數的代碼,在單元測試過程當中,驅動模塊一般包括調用被測函數前的數據準備、調用被測函數以及驗證相關結果三個步驟。驅動代碼的結構,一般由單元測試的框架決定。
性能

樁代碼(Stub)是用來代替真實代碼的臨時代碼。 好比,某個函數A的內部實現中調用了一個還沒有實現的函數B,爲了對函數A的邏輯進行測試,那麼就須要模擬一個函數B,這個模擬的函數B的實現就是所謂的樁代碼。樁代碼的應用首先起到了隔離和補齊的做用,使被測代碼可以獨立編譯、連接,並獨立運行。同時,樁代碼還具備控制被測函數執行路徑的做用。單元測試

Mock代碼和樁代碼很是相似,都是用來代替真實代碼的臨時代碼,起到隔離和補齊的做用。可是不少人,甚至是具備多年單元測試經驗的開發工程師,也很難說清這兩者的區別。學習

在做者看來,Mock代碼和樁代碼的本質區別是:測試期待結果的驗證(Assert and Expectiation)。測試

對於Mock代碼來講,咱們的關注點是Mock方法有沒有被調用,以什麼樣的參數被調用,被調用的次數,以及多個Mock函數的前後調用順序。因此,在使用Mock代碼的測試中,對於結果的驗證(也就是assert),一般出如今Mock函數中。spa

對於樁代碼來講,咱們的關注點是利用Stub來控制被測函數的執行路徑,不會去關注Stub是否被調用以及怎麼樣被調用。因此,你在使用Stub的測試中,對於結果的驗證(也就是assert),一般出如今驅動代碼中。

在Python中,咱們經常使用的單元測試框架是unittest、pytest,相比之下pytest更具備學習價值,緣由是pytest代碼更簡潔。並且pytest框架結合selenium作UI自動化也比較方便。
可能單元測試你們作的不是不少,由於單元測試基本都是開發的同事在作,可是這並不妨礙你們學習pytest框架。

不一樣階段

自動化分類

一、代碼開發階段——單元測試【pytest、unittest】二、開發完成——api測試即接口測試三、頁面開發完成穩定後——UI自動化【selenium】四、上線前性能、安全、兼容性測試【Jmeter】以上內容但願對你有幫助,有被幫助到的朋友歡迎點贊,評論。

相關文章
相關標籤/搜索