一、對加法函數進行測試
1.實例化被測單元(方法):類名 實例名=new 類名([參數])
2.調用被測單元,對比預期值和輸出值(實際值);
在沒有junit測試工具的情況下,我們要進行如下的測試代碼編寫過程:
二、利用Junit進行單元測試
Junit是一款專門用於java語言的代碼的單元測試工具;是一套基於java的測試框架,目前有兩個版本:Junit3,Junit4.Junit中最常用的兩個測試方法是:
assertEquals(expect,actual);用於非數組型的數據的比較;
assertArrayEquals(expect,actual);用於數組型的數據的比較;
PS:這兩個函數的選擇是由被測單元的輸出數據類型決定的。
1.Junit 3特征
a.測試類都是要繼承TestCase類:
import junit.framework.TestCase
public class TestCalc extends TestCase
b.測試類中的方法的作用是由方法名決定的且測試用例的方法必須以小寫的test開頭;
如:
2.Junit 4
Junit 3有很大優化,沒有Junit3那樣的約束條件,使用起來很方便,對於Calc測試如下:
3.對於Java中單元測試來說,被測的方法的類型一般是或者可以轉化為以下四種類型:
a.被測方法有返回值,且返回值是可預期的。(按照功能,特定的輸入一定對應特定的輸出);assertEquals(預期值,輸入值);
//上述對於加法函數的測試即屬於該類;
b.被測方法有返回值,但是返回值不是固定的,是隨機的,但是返回值從數學角度來看,返回值必然是有其特征的;
例:
c.被測方法沒有返回值,此時都可以將之轉化為輸出類型(System.out.println());
例:Dog這樣的類是沒有返回類型的,通常我們可以將之轉化為有輸出語句的類型;
d.被測方法本身會拋出異常,此時的測試重點已經是對異常信息的檢測。
例:
4.Parameter參數化
一般來說,在自動化測試領域,針對同一單元的測試,往往存在多個測試用例,在代碼層面來看,多個測試用例的實現,其特征是:邏輯相同,數據不同。此時就需要用到參數化的操作,一定程度上實現代碼和數據的分離,junit自身提供了參數化的方式。
例:
通過參數化進行測試:
5.feeder工具
添加feeder插件,新建data文件夾,右擊新建文件,命名為isnumber.csv.(以上面isNumber為例)