JUnit小整理

    JUnit是java單元測試工具。java

    1、在項目中構建單元測試的一些規則:‘
數組

        1.新建一個源代碼目錄來存放咱們的測試代碼,一般命名爲:test
eclipse

        2.測試類的包應該和測試類保持一致。函數

        3.測試單元中的每一個方法必須能夠單獨測試,測試方法不能有任何的依賴。工具

        4.測試方法必須使用public void 經行修飾,不能帶任何的參數。單元測試

        5.測試方法使用test做爲方法的前綴。【不是必須的】測試

        6.測試類使用Test類做爲類名的後綴。【不是必須的】ui

        注意:[eclipse]一般能夠直接在測試類上面,單擊右鍵來建立一個JUnitl測試類,eclipse會自動生成與測試類相對應             的包名。測試方法等以上規則)this

    2、對於JUnit的測試結果說明
spa

        1.Failure通常由單元測試使用的斷言方法判斷失敗所引發的,這表示測試點發現了問題,那程序輸出的結果和咱們預期的結果不同形成。

        2.error是由代碼異常引發的,它能夠產生於測試代碼自己的錯誤,也能夠是被測試代碼中的一個隱藏的bug。

        3.測試用例是用來證實你沒有錯,而不是用來證實你是對的。

    3、@Test屬性

        1.@Test(expected = XX.class) 捕獲異常。若是程序捕獲達到相對應的XX.class異常,那麼程序也表示成功。若是出             現其餘異常,則會報錯。

        2.@Test(timeout = 毫秒)測試代碼塊的運行時間。當到達該時間時,若是程序還沒執行完成,那麼程序也將退出。

    4、測試套測 @RunWith(XX.class)

        1.測試套件就是組織測試類一塊兒運行的入口類。

            a).寫一個做爲測試套件的入口類,這個類裏面不包含其餘的方法。

            b).更改測試運行器XX.class.

            c).將要測試的類做爲數組傳入到 @Suite.SuiteClasses({test1.class,test2.class.....  }),

@RunWith(Suite.class)
@Suite.SuiteClasses({TaskTest1.class,TaskTest2.class})
public class SuiteTest {
    //不能夠包含其餘方法
}

   5、JUnit中的參數化設置

        1.更改默認的測試運行器爲@RunWith(XX.class)

        2.聲明變量來保存預期值和結果值。

        3.聲明一個返回值爲Collection的公共靜態方法,並使用@Parameters進行修飾。

        4.爲測試類聲明一個帶參數的公共構造函數並在其中爲聲明變量賦值。

import static org.junit.Assert.*;

import java.util.Arrays;
import java.util.Collection;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;

import com.sun.org.glassfish.gmbal.ParameterNames;

/** 
* @author 做者 E-mail: xuebinlu@163.com
* @version 建立時間:2015年12月1日 下午9:31:47 
* 對於最上面的import static 靜態導入,這個和平時的import導入的區別在於,前者導入之後,在當前類下不用再使用類名調用,直接調用導入類的靜態方法就行,然後者這須要經過導入類的類名來調用靜態方法。 
*/
@RunWith(Parameterized.class)
public class ParameterTest {

	int expected = 0;
	int input1 = 0;
	int input2 = 0;
	
	@Parameters
	public static Collection<Object[]> t(){
		return Arrays.asList(new Object[][]{
			{6,1,5},
			{5,2,3}
		});
	}
	
	public ParameterTest(int expected, int input1, int input2) {
		super();
		this.expected = expected;
		this.input1 = input1;
		this.input2 = input2;
	}

	@Test
	public void test() {
		assertEquals(expected,new Calculate().add(input1, input2));
	}

}
相關文章
相關標籤/搜索