亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnit簡單使用教程
作者:網絡轉載 發布時間:[ 2016/6/12 14:46:09 ] 推薦標簽:單元測試 Junit 軟件測試工具

  JUnit簡介
  JUnit是由 Erich Gamma和Kent Beck編寫的一個回歸測試框架(regression testing framework)。JUnit測試是程序員測試,即所謂白盒測試,因為程序員知道被測試的軟件如何(How)完成功能和完成什么樣(What)的功能。
  簡單編寫單元測試實例
  public class JunitAnnotation {
  // execute before class
  @BeforeClass
  public static void beforeClass() {
  System.out.println("in before class");
  }
  // execute after class
  @AfterClass
  public static void afterClass() {
  System.out.println("in after class");
  }
  // execute before test
  @Before
  public void before() {
  System.out.println("in before");
  }
  // execute after test
  @After
  public void after() {
  System.out.println("in after");
  }
  // test case
  @Test
  public void test() {
  System.out.println("in test");
  }
  // test case ignore and will not execute
  @Ignore(“unimplemented”)
  public void ignoreTest() {
  System.out.println("in ignore test");
  }
  }
  JUnit常用注解介紹
  @Test:JUnit 3.x是通過對測試方法的命名(test+方法名)來確定是否是測試,且所有的測試類必須繼承TestCase。JUnit 4.x只需要在方法前加上@Test 可以定義一個測試方法。
  注意:測試方法必須是public void,即公共、無返回值的;可以拋出異常。
  @Ignore :該注解標記的測試方法在測試中會被忽略。當測試的方法還沒有實現,或者測試的方法已經過時,或者在某種條件下才能測試該方法(比如需要一個數據庫連接,而在本地測試的時候,數據庫并沒有連接),那么使用該注解來標記這個方法。同時可以為該注解傳遞一個String的參數,表明為什么會忽略這個測試方法。比如:@lgnore(“該方法還沒有實現”),在執行的時候,僅會報告該方法沒有實現,而不會運行測試方法。
  @BeforeClass:當我們運行幾個有關聯的用例時,可能會在數據準備或其它前期準備中執行一些相同的命令,這個時候為了讓代碼更清晰,更少冗余,可以將公用的部分提取出來, 放在一個方法里,并為這個方法注解@BeforeClass。意思是在測試類里所有用例運行之前,運行一次這個方法。例如創建數據庫連接、讀取文件等。
  注意:方法名可以任意,但必須是public static void,即公開的、靜態的、無返回值的。這個方法只會運行一次。
  @AfterClass:跟@BeforeClass對應,在測試類里所有用例運行之后,運行一次。用于處理一些測試后續工作,例如清理數據,恢復現場。
  注意:同樣必須是public static void,即公開的、靜態的、無返回值的。這個方法只會運行一次。
  @Before:使用了該注解的方法在每個測試方法執行之前都要執行一次。主要用于一些獨立于用例之間的準備工作。比如兩個用例都需要讀取數據庫里的用戶A信息,但第一個用例會刪除這個用戶A,而第二個用例需要修改用戶A。那么可以用@BeforeClass創建數據庫連接。用@Before來插入一條用戶A信息。
  注意:必須是public void,不能為static。
  @After :使用了該注解的方法在每個測試方法執行之后要執行一次。
  @Runwith:即測試運行器,放在測試類名之前,用來確定測試類怎么運行的,當不指定這個注解時,使用默認Runner來運行測試代碼,即@RunWith(JUnit4.class)。
  常見的運行器有:
  (1)@RunWith(Parameterized.class):參數化運行器,配合@Parameters使用JUnit的參數化功能。
  (2)@RunWith(Suite.class)
  @SuiteClasses({ATest.class,BTest.class,CTest.class})
  測試集運行器配合使用測試集功能。   
  (3)@RunWith(JUnit4.class):JUnit 4的默認運行器
  (4)@RunWith(JUnit38ClassRunner.class):用于兼容junit3.8的運行器
  (5)一些其它運行器具備更多功能。例如@RunWith(SpringJUnit4ClassRunner.class)集成了Spring的一些功能。
  @Parameters:用于JUnit的參數化功能,用來標記準備數據的方法。
  注意:該方法需要滿足一定的要求:
  (1)該方法必須為public static的
  (2)該方法返回值必須為java.util.Collection類型
  (3)該方法的名字不做要求
  (4)該方法沒有參數
  參數化測試
  為了保證單元測試的嚴謹性,我們模擬了不同的測試數據來測試方法的處理能力,為此我們編寫了大量的單元測試方法。而這些測試方法大同小異:代碼結構都是相同的,不同的僅僅是測試數據和期望值。為了降低代碼的冗余,JUnit 4提供了參數化測試,即只寫一個測試方法,把這若干種情況作為參數傳遞進去,一次性的完成測試。
  JUnit 4參數化測試的五個步驟:
  (1)為準備使用參數化測試的測試類指定特殊的運行器org.junit.runners.Parameterized。
  (2)為測試類聲明幾個變量,分別用于存放期望值和測試所用數據。
  (3)為測試類聲明一個帶有參數的公共構造函數,并在其中為第二個環節中聲明的幾個變量賦值。
  (4)為測試類聲明一個使用注解 org.junit.runners.Parameterized.Parameters飾的,返回值為java.util.Collection的公共靜態方法,并在此方法中初始化所有需要測試的參數對。
  (5)編寫測試方法,使用定義的變量作為參數進行測試。

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 人人干日日操 | 午夜在线观看免费视频 | 亚洲免费在线 | 久久久国产精品免费 | 万部在线视频免费观看 | 国产成人精品一区二区三在线观看 | 成人久久18免费网 | 中国性xxx免费视频 中国野外性xxxx | 亚洲综合激情在线影院 | 国产视频一区二区三区四区 | 一区二区三区波多野结衣 | 久久不卡精品 | a极毛片| 日韩a级毛片 | 美女视频网站黄 | 丁香六月 久久久 | 久久精品视频6 | 欧美在线观看一区二区 | 啊啊啊毛片 | 成人久久久观看免费毛片 | 狠狠狠狠狠狠 | 日本黄色大片视频 | 在线黄色免费看 | 久久h视频 | 亚洲日本va午夜中文字幕 | 欧美影院一区二区三区 | 中文精品久久久久国产网站 | 色秀视频免费高清网站 | 男女免费视频 | 韩国午夜伦理 | 中文亚洲字幕 | 国产gav成人免费播放视频 | 日本一区免费 | 欧美日韩不卡高清 | 国产大片黄在线看免费 | 成人免费视频无遮挡在线看 | 成人私人影院www片免费高清 | 91探花国产综合在线精品 | 一个人看的www免费视频中文 | 国产欧美一区二区精品久久久 | 欧美色图偷窥自拍 |