六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

JUnit基礎(chǔ)

[摘要]一、簡(jiǎn)介   JUnit是一個(gè)開(kāi)源的java單元測(cè)試框架。在1997年,由 Erich Gamma 和 Kent Beck 開(kāi)發(fā)完成。這兩個(gè)牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(xiàn)(你覺(jué)得眼熟一點(diǎn)都不奇怪)。   正如常言道:“麻雀雖小,五臟...
一、簡(jiǎn)介

  JUnit是一個(gè)開(kāi)源的java單元測(cè)試框架。在1997年,由 Erich Gamma 和 Kent Beck 開(kāi)發(fā)完成。這兩個(gè)牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(xiàn)(你覺(jué)得眼熟一點(diǎn)都不奇怪)。
  正如常言道:“麻雀雖小,五臟俱全。” JUnit設(shè)計(jì)的非常小巧,但是功能卻非常強(qiáng)大。
  下面是JUnit一些特性的總結(jié):
  1) 提供的API可以讓你寫(xiě)出測(cè)試結(jié)果明確的可重用單元測(cè)試用例
  2) 提供了三種方式來(lái)顯示你的測(cè)試結(jié)果,而且還可以擴(kuò)展
  3) 提供了單元測(cè)試用例成批運(yùn)行的功能
  4) 超輕量級(jí)而且使用簡(jiǎn)單,沒(méi)有商業(yè)性的欺騙和無(wú)用的向?qū)?
  5) 整個(gè)框架設(shè)計(jì)良好,易擴(kuò)展
  對(duì)不同性質(zhì)的被測(cè)對(duì)象,如Class,Jsp,Servlet,Ejb等,Junit有不同的使用技巧。由于本文的性質(zhì),以下僅以Class測(cè)試為例。

  二、下載

  點(diǎn)擊http://www.junit.org可以下載到最新版本的JUnit,本文使用的為3.8.1版。至于安裝或者配置之類,你只需要輕松的將下載下來(lái)的壓縮包中的jar文件,放到你工程的classpath中就可以了。
  這樣,你的系統(tǒng)中就可以使用JUnit編寫(xiě)單元測(cè)試代碼了(是不是很簡(jiǎn)單)!

  三、HelloWorld

  記得在幾乎每本語(yǔ)言教學(xué)書(shū)上都能找到HelloWorld這個(gè)入門(mén)代碼。今天在這里,我們也從一個(gè)簡(jiǎn)單到根本不用單元測(cè)試的例子入手。這是一個(gè)只會(huì)做兩數(shù)加減的超級(jí)簡(jiǎn)單的計(jì)算器(小學(xué)一年級(jí)必備極品)。代碼如下:

  public class SampleCalculator
  {
   public int add(int augend , int addend)
   {
   return augend + addend ;
   }

   public int subtration(int minuend , int subtrahend)

   {

   return minuend - subtrahend ;

   }

  }

  將上面的代碼編譯通過(guò)。下面就是我為上面程序?qū)懙囊粋(gè)單元測(cè)試用例:

  //請(qǐng)注意這個(gè)程序里面類名和方法名的特征
  import junit.framework.TestCase;
  public class TestSample extends TestCase

  {

   public void testAdd()

   {

  SampleCalculator calculator = new SampleCalculator();

   int result = calculator.add(50 , 20);

   assertEquals(70 , result);

   }

   public void testSubtration()

   {

   SampleCalculator calculator = new SampleCalculator();

   int result = calculator.subtration(50 , 20);

   assertEquals(30 , result);

   }

  }

  好了,在DOS命令行里面輸入javac TestSample.java 將測(cè)試類編譯通過(guò)。然后再輸入 java junit.swingui.TestRunner TestSample 運(yùn)行測(cè)試類,你會(huì)看到如下的窗口。

  綠色說(shuō)明單元測(cè)試通過(guò),沒(méi)有錯(cuò)誤產(chǎn)生;如果是紅色的,則就是說(shuō)測(cè)試失敗了。這樣一個(gè)簡(jiǎn)單的單元測(cè)試就完成了.

  按照框架規(guī)定:編寫(xiě)的所有測(cè)試類,必須繼承自junit.framework.TestCase類;里面的測(cè)試方法,命名應(yīng)該以Test開(kāi)頭,必須是public void 而且不能有參數(shù);而且為了測(cè)試查錯(cuò)方便,盡量一個(gè)TestXXX方法對(duì)一個(gè)功能單一的方法進(jìn)行測(cè)試;使用assertEquals等junit.framework.TestCase中的斷言方法來(lái)判斷測(cè)試結(jié)果正確與否。

  你可以對(duì)比著上面測(cè)試類中的實(shí)現(xiàn)來(lái)體會(huì)下規(guī)定——很簡(jiǎn)單!而且你在這個(gè)測(cè)試類中有加入多少個(gè)測(cè)試方法,就會(huì)運(yùn)行多少個(gè)測(cè)試方法。

  四、向前一步

  學(xué)完了HelloWorld,你已經(jīng)可以編寫(xiě)標(biāo)準(zhǔn)的單元測(cè)試用例了。但是還有一些細(xì)節(jié),這里還要說(shuō)明一下。不要急,很快的!
  另外你是否注意到,上面彈出窗口的一個(gè)細(xì)節(jié),在綠條下面有Errors、Failures統(tǒng)計(jì)。這兩者有何區(qū)別呢?
  Failures作為單元測(cè)試所期望發(fā)生的錯(cuò)誤,它預(yù)示你的代碼有bug,不過(guò)也可能是你的單元測(cè)試代碼有邏輯錯(cuò)誤(注意是邏輯錯(cuò)誤)。Errors不是你所期待的,發(fā)生了Error你可以按照下面的順序來(lái)檢查:

  檢查測(cè)試所需的環(huán)境,如:數(shù)據(jù)庫(kù)連接

  檢查單元測(cè)試代碼

  檢查你的系統(tǒng)代碼

  五、成批運(yùn)行test case

  這是前面提到的JUnit特性之一。它方便于系統(tǒng)單元測(cè)試的成批運(yùn)行。使用起來(lái)也是非常簡(jiǎn)單,先看下使用代碼:

  import junit.framework.Test;

  import junit.framework.TestSuite;

  public class TestAll{

   public static Test suite(){

   TestSuite suite = new TestSuite("TestSuite Test");

   suite.addTestSuite( TestSample.class);

   return suite;

   }

  }

  這個(gè)測(cè)試程序的編譯、運(yùn)行,和上面TestSample的方式是一樣的。

  javac TestAll.java

  java junit.swingui.TestRunner TestAll

  怎么樣?這樣你在suite方法里面添加幾個(gè)TestCase就會(huì)運(yùn)行幾個(gè),而且它也可以添加TestSuite來(lái)將小一點(diǎn)的集合加入大的集合中來(lái),方便了對(duì)于不斷增加的TestCase的管理和維護(hù)。

  你覺(jué)得suite方法的作用是不是于java應(yīng)用程序的main很類似?并且這里的suite必須嚴(yán)格遵守上面的寫(xiě)法!



標(biāo)簽:JUnit基礎(chǔ) 

相關(guān)文章

主站蜘蛛池模板: 天天天夜夜夜夜夜 | 四虎永久在线观看视频精品 | 视频一区二区中文字幕 | 亚洲欧美v国产一区二区 | 五月婷婷在线观看视频 | 天天爱添天天爱添天天爱添 | 亚洲综合影视 | 中文字幕在线视频精品 | 四虎永久在线精品视频免费观看 | 欧美一级做一a做片性视频 欧美一级做性受 | 欧美特级 | 欧美一区二区激情视频 | 特级欧美老少乱配 | 在线伊人网 | 午夜影院免费在线观看 | 欧美囗交 | 色88888久久久久久影院 | 天堂在线最新版www中文 | 永久免费在线看mv | 欧美在线三级 | 日本视频中文字幕一区二区 | 人人夜 | 色爱区综合五月激情 | 欧美中日韩在线 | 天天干天天做天天射 | 亚洲国内 | 中文字幕一区在线观看 | 午夜精品久久久久久久99 | 在线视频a | 亚洲狼人综合 | 欧美综合中文字幕久久 | 色综合久久丁香婷婷 | 亚洲啪啪网站 | 中文区永久区乱码六区 | 天天躁日日躁 疯人影院 | 亚洲国产精品免费在线观看 | 日韩毛片在线观看 | 青草青草久热精品视频在线观看 | 亚洲欧美综合图片 | 深夜国产福利 | 欧美亚洲欧美 |