看完這篇文章,不要再說自己不會單元測試了 ! ! !
Junit是什麼!?單元測試框架!(Java+Unit)你真的沒有用過嗎?與之類似的TestNG,同樣是一個單元測試框架,你可能也經常會用到。
單元測試是什麼?通常來講,單元測試也叫白盒測試,與黑盒測試不同,白盒測試需要看代碼。
單元測試的內容是測試一個類內部的方法是否正確,返回值是否與預期值一致,如果返回值與預期值不符,那麼使用Junit單元測試框架的時候就會報錯,紅色出錯信息。
從狹義上來說單元測試是指一個函數、方法的功能測試驗證,侷限於一個class內部,以function爲單位;
從廣義上來說,任何一個project內部的功能都可以看做一個獨立於其他部分的獨立單元。從這個角度來講單元測試無處不在。
從開發的角度來講往往單元測試是開發來做的,也就是狹義上的單元測試,從大家目前的共識來說,也是這樣的,因爲這些部分是開發工作中的一部分。
單元測試框架Junit如何去用?我們使用的IDE是Eclipse。
首先要配置JDK,安裝Eclipse,一般Eclipse中都默認安裝了Junt4.
環境配置完成,Junit也配置好之後,開始Junit單元測試框架的第一步。
因爲是單元測試,so 我們要有驗證的東西。假設驗證一個add方法。
class AddTest{
public int add (int a , int b){
return a+b;
}
}
在這個類裏我們寫了一個add方法,傳入int類型的兩個值a和b,返回a+b。
如果沒有其他錯誤,那麼我們這個簡單的加法方法能夠完成對int類型的數值的自動加法操作。
下面就是Junit登場的時候了。
首先我們要再編寫一個類。TestAdd類,在這個類裏進行測試。
class TestAdd{
}
在這個類裏我們要導入要使用的Junit的jar包,我們使用任何一個java的外部工具都要導入這個工具的jar包。
import Junit.Test;
inport Junit.Assert;
一個是Junit提供的測試包,一個是Junit的斷言包。
然後引入我們要測試的類
AddTest at = new AddTest();
這些工作做完後要開始編寫測試類了:
注意我們要讓Junit幫助我們完成單元測試的話必須在測試類上方添加@Test的註解,只有這樣Junit纔會測試這個類
@Test
public void testAdd() {
int d = c.add(1,2);
Assert.assertEquals(3, d);
}
到這裏就大功告成了。
這裏調用了一個Junit類庫中的Assert類的方法,判斷預期結果與實際結果是否一樣。
綠色證明我們的方法是對的。
測試一下如果我們的方法是錯誤的會怎麼樣。
把return a+b 變爲 a*b;
結果會怎麼樣?
紅色錯誤,點擊左下角的錯誤信息,可以定位到錯誤的位置。可以看到執行到我們編寫的斷言方法時出現了錯誤。
結果雖然錯誤,但是與我們的預期一致。
使用Junit可以方便我們定位錯誤,在開發中常常使用Junit搭配debug調試程序,更快的找到程序出錯的地方。
在Selenium自動化測試階段,Junit的使用頻率很高。
當然也可以使用Log4j工具生成日誌幫助我們調試程序,但這不是我們單元測試的內容了。