測(cè)試之路1—熟悉使用Junit
測(cè)試有很多種,不僅僅是手動(dòng)測(cè)試,往往還要用到所謂“自動(dòng)化測(cè)試”,其實(shí)我的理解也就是自己寫個(gè)程序去測(cè)試。 最近在公司實(shí)習(xí),用到自動(dòng)化測(cè)試,因?yàn)槌绦蚨际怯?a target="_self" style="word-break: break-all; color: #202859; line-height: normal !important;">java編寫的,所以我也用java編寫單元測(cè)試程序。一般都在java中已經(jīng)導(dǎo)入junit import junit.framework.TestCase; 但是我看老大給我的例程都沒(méi)與引入這個(gè)類,而是引入了<pre name="code" class="java">import org.junit.After;import org.junit.Before;import org.junit.Test;import static org.junit.Assert.*;
然后,老大叫我根據(jù)他給的例程自己去創(chuàng)建單元測(cè)試程序,然后運(yùn)行,創(chuàng)建實(shí)際的任務(wù)。 創(chuàng)建任務(wù),看似不是很難,但仍要花點(diǎn)時(shí)間去了解Junit是怎么樣的,所以我需要先了解一下。 首先這也是一個(gè)類,和其他java的類一樣,無(wú)非引入了Junit的類,然后我就發(fā)現(xiàn)了這個(gè)類并沒(méi)有顯式的寫出自己的構(gòu)造方法,而是只有一些看似比較常見(jiàn)對(duì)于字符串操作的方法。 唯一不同的是它在每一個(gè)方法前都有一個(gè)注解。就和前面import的東西一樣,有@after,@Before,@Test。 那么這些注解就是單元測(cè)試的關(guān)鍵了: 你要在方法的前面使用 @Test標(biāo)注,以表明這是一個(gè)測(cè)試方法;用@Before來(lái)標(biāo)注它“在任何一個(gè)測(cè)試執(zhí)行之前必須執(zhí)行的代碼 ;在這種測(cè)試函數(shù)的前面加上@Ignore 標(biāo)注,這個(gè)標(biāo)注的含義就是 “ 某些方法尚未完成,暫不參與此次測(cè)試; 那么最最簡(jiǎn)單實(shí)現(xiàn)單元測(cè)試花其實(shí)只要做兩步就可以測(cè)試程序了:初始化,測(cè)試。而測(cè)試的代碼放在@Test標(biāo)注的方法內(nèi)即可。如圖所示,就是一段單元測(cè)試的代碼:public void creatAAC_Task() throws DocumentException {// String[] sampleratelist = { "24000", "32000", "44100", "48000" };String[] sampleratelist = { "24000" };for (int j = 0; j < sampleratelist.length; j++) {TaskPara model = new TaskPara();model.setTaskName("AAC_" + sampleratelist[j]);//model.setVideoCodec("h264");model.setVideoProfile("Main");model.setAudioCodec("aac");//model.setAudioProfile("LC");model.setSamplerate(sampleratelist[j]);String content = taskcaseAPIs.createTaskXML(model);String xmlString = arcvideo.addNewTask(content);assertTrue(!xmlString.contains("<errors>"));//compare(e://xml2.xml);String taskID = taskAPIs.getTaskID(xmlString);String delXML = arcvideo.deleteTask(taskID);assertTrue(delXML.contains("<success></success>"));}}
而運(yùn)行這個(gè)方法也不需要直接用main函數(shù)作為入口地址,只需要選擇該方法,點(diǎn)擊右鍵Run as->Junit test 或Debug as->Junit test。即可運(yùn)行該單元測(cè)試方法,運(yùn)行的結(jié)果是直接在服務(wù)器上創(chuàng)建一個(gè)任務(wù),如下圖所示: 那么任務(wù)就已經(jīng)被創(chuàng)建好了。而任務(wù)的名稱就是方法里輸出任務(wù)的字符串。 這就是一個(gè)簡(jiǎn)單的單元測(cè)試。
<pre name="code" class="java">import org.junit.After; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; |
public void creatAAC_Task() throws DocumentException { // String[] sampleratelist = { "24000", "32000", "44100", "48000" }; String[] sampleratelist = { "24000" }; for (int j = 0; j < sampleratelist.length; j++) { TaskPara model = new TaskPara(); model.setTaskName("AAC_" + sampleratelist[j]); //model.setVideoCodec("h264"); model.setVideoProfile("Main"); model.setAudioCodec("aac"); //model.setAudioProfile("LC"); model.setSamplerate(sampleratelist[j]); String content = taskcaseAPIs.createTaskXML(model); String xmlString = arcvideo.addNewTask(content); assertTrue(!xmlString.contains("<errors>")); //compare(e://xml2.xml); String taskID = taskAPIs.getTaskID(xmlString); String delXML = arcvideo.deleteTask(taskID); assertTrue(delXML.contains("<success></success>")); } } |
posted on 2014-06-04 10:50 順其自然EVO 閱讀(205) 評(píng)論(0) 編輯 收藏 所屬分類: 測(cè)試學(xué)習(xí)專欄