測試在軟件生命周期中的重要性,不用我多說想必大家也都非常清楚。軟件測試有很多分類,從測試的方法上可分為:黑盒測試、白盒測試、靜態測試、動態測試等;從軟件開發的過程分為:單元測試、集成測試、確認測試、驗收、回歸等。
在眾多的分類中,與開發人員關系最緊密的莫過於單元測試了。像其他種類的測試基本上都是由專門的測試人員來完成,只有單元測試是完全由開發人員來完成的。那么今天我們就來說說什么是單元測試,為什么要進行單元測試,以及如更好的何進行單元測試。
什么是單元測試?
單元測試(unit testing),是指對軟件中的最小可測試單元進行檢查和驗證。比如我們可以測試一個類,或者一個類中的一個方法。
為什么要進行單元測試?
為什么要進行單元測試?說白了就是單元測試有什么好處,其實測試的好處無非就是減少bug、提高代碼質量、使代碼易於維護等。單元測試有什么好處請看一下百度百科中歸納的四條:
1、它是一種驗證行為。
程序中的每一項功能都是測試來驗證它的正確性。它為以后的開發提供支援。就算是開發后期,我們也可以輕松的增加功能或更改程序結構,而不用擔心這個過程中會破壞重要的東西。而且它為代碼的重構提供了保障。這樣,我們就可以更自由的對程序進行改進。
2、它是一種設計行為。
編寫單元測試將使我們從調用者觀察、思考。特別是先寫測試(test-first),迫使我們把程序設計成易於調用和可測試的,即迫使我們解除軟件中的耦合。
3、它是一種編寫文檔的行為。
單元測試是一種無價的文檔,它是展示函數或類如何使用的最佳文檔。這份文檔是可編譯、可運行的,並且它保持最新,永遠與代碼同步。
4、它具有回歸性。
自動化的單元測試避免了代碼出現回歸,編寫完成之后,可以隨時隨地的快速運行測試。
選中需要測試的類,快捷鍵CTRL + SHIFT + T,
setUp()函數為每一個測試函數運行前都要運行的函數,
tearDown()含糊為每一個測試函數運行后都要運行的函數。
package com; /***/ public class dy { public String sayHello(){ return "hello"; } }
package com; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; /***/ public class dyTest { private dy myClass; @Before public void setUp() throws Exception { myClass = new dy(); } @Test public void sayHello() throws Exception { assertEquals("hello",myClass.sayHello()); } }