欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java編程之單元測(cè)試(Junit)實(shí)例分析(附實(shí)例源碼)

 更新時(shí)間:2015年11月17日 12:06:41   作者:stevenhu_223  
這篇文章主要介紹了java編程之單元測(cè)試(Junit),結(jié)合實(shí)例形式較為詳細(xì)的分析總結(jié)了Java單元測(cè)試的原理、步驟及相關(guān)注意事項(xiàng),并附帶了完整代碼供讀者下載參考,需要的朋友可以參考下

本文實(shí)例講述了java編程之單元測(cè)試。分享給大家供大家參考,具體如下:

完整實(shí)例代碼代碼點(diǎn)擊此處本站下載。

在有些時(shí)候,我們需要對(duì)我們自己編寫的代碼進(jìn)行單元測(cè)試(好處是,減少后期維護(hù)的精力和費(fèi)用),這是一些最基本的模塊測(cè)試。當(dāng)然,在進(jìn)行單元測(cè)試的同時(shí)也必然得清楚我們測(cè)試的代碼的內(nèi)部邏輯實(shí)現(xiàn),這樣在測(cè)試的時(shí)候才能清楚地將我們希望代碼邏輯實(shí)現(xiàn)得到的結(jié)果和測(cè)試實(shí)際得到的結(jié)果進(jìn)行驗(yàn)證對(duì)比。

廢話少說(shuō),上代碼:

首先創(chuàng)建一個(gè)java工程,在工程中創(chuàng)建一個(gè)被單元測(cè)試的Student數(shù)據(jù)類,如下:

package com.phicomme.hu; 
public class Student 
{ 
 private String name; 
 private String sex; 
 private int high; 
 private int age; 
 private String school; 
 public Student(String name, String sex ,int high, int age, String school) 
 { 
  this.name = name; 
  this.sex = sex; 
  this.high = high; 
  this.age = age; 
  this.school = school; 
 } 
 public String getName() 
 { 
  return name; 
 } 
 public void setName(String name) 
 { 
  this.name = name; 
 } 
 public String getSex() 
 { 
  return sex; 
 } 
 public void setSex(String sex) 
 { 
  this.sex = sex; 
 } 
 public int getHigh() 
 { 
  return high; 
 } 
 public void setHigh(int high) 
 { 
  this.high = high; 
 } 
 public int getAge() 
 { 
  return age; 
 } 
 public boolean setAge(int age) 
 { 
  if (age >25) 
  { 
   return false; 
  } 
  else 
  { 
   this.age = age; 
   return true; 
  }     
 } 
 public String getSchool() 
 { 
  return school; 
 } 
 public void setSchool(String school) 
 { 
  this.school = school; 
 } 
}

在eclipse下單元測(cè)試這個(gè)類:

首先導(dǎo)入Junit包:選中java工程,點(diǎn)擊鼠標(biāo)右鍵--->選擇properties---->在窗口中選Java Build Path---->在右側(cè)點(diǎn)擊Add Library---->在彈出的窗口列表中選中Junit---->下一步----->Junit 4(我用的是Junit 4)---->finish

這樣Junit 4包就導(dǎo)完了,接下來(lái)就是創(chuàng)建測(cè)試類:

將測(cè)試類和被測(cè)試類放在不同的包中(也可以放在同一個(gè)包中,此處只是為了區(qū)別),代碼如下:

測(cè)試類1:

package com.phicomme.test; 
import com.phicomme.hu.Student; 
import junit.framework.TestCase; 
public class StudentTest01 extends TestCase 
{ 
 Student testStudent; 
 //此方法在執(zhí)行每一個(gè)測(cè)試方法之前(測(cè)試用例)之前調(diào)用 
 @Override 
 protected void setUp() throws Exception 
 { 
  // TODO Auto-generated method stub 
  super.setUp(); 
  testStudent = new Student("djm", "boy", 178, 24, "華東政法"); 
  System.out.println("setUp()"); 
 } 
 //此方法在執(zhí)行每一個(gè)測(cè)試方法之后調(diào)用 
 @Override 
 protected void tearDown() throws Exception 
 { 
  // TODO Auto-generated method stub 
  super.tearDown(); 
  System.out.println("tearDown()"); 
 } 
 //測(cè)試用例,測(cè)試Person對(duì)象的getSex()方法 
 public void testGetSex() 
 { 
  assertEquals("boy", testStudent.getSex()); 
  System.out.println("testGetSex()"); 
 } 
 //測(cè)試Person對(duì)象的getAge()方法 
 public void testGetAge() 
 { 
  assertEquals(24, testStudent.getAge()); 
  System.out.println("testGetAge()"); 
 } 
}

測(cè)試類2:

package com.phicomme.test; 
import junit.framework.TestCase; 
import com.phicomme.hu.Student; 
public class StudentTest extends TestCase 
{ 
 private Student testStudent; 
 @Override 
 protected void setUp() throws Exception 
 { 
  // TODO Auto-generated method stub 
  super.setUp(); 
  testStudent = new Student("steven_hu", "boy", 170 , 23, "上海理工"); 
 } 
 @Override 
 protected void tearDown() throws Exception 
 { 
  // TODO Auto-generated method stub 
  super.tearDown(); 
 } 
 public void testSetage() 
 { 
  assertTrue(testStudent.setAge(21)); 
 } 
 public void testGetSchool() 
 { 
  //預(yù)期值和實(shí)際值不一樣,測(cè)試時(shí)出現(xiàn)失敗(Failure) 
  assertEquals("南昌大學(xué)", testStudent.getSchool()); 
 } 
 public void testGetName() 
 { 
  assertEquals("hdy", testStudent.getName()); 
 } 
}

當(dāng)然,如果同時(shí)需要一起測(cè)試以上這兩個(gè)測(cè)試類,可以通過(guò)TestSuite類實(shí)現(xiàn),它相當(dāng)于是一個(gè)套件,可以把所有測(cè)試類添進(jìn)來(lái)一起運(yùn)行測(cè)試;

代碼如下:

package com.phicomme.test; 
import com.phicomme.hu.StudentTest02; 
import junit.framework.Test; 
import junit.framework.TestSuite; 
public class AllTest 
{ 
 //static PersonTest p = new PersonTest(); 
 //static PersonTest p1 = new PersonTest(); 
 public static Test suite() 
 { 
  TestSuite suite = new TestSuite("Test for com.phicomme.test"); 
  //suite.addTest(p); 
  //suite.addTest(p1); 
  suite.addTestSuite(StudentTest.class); 
  suite.addTestSuite(StudentTest01.class); 
  return suite; 
 } 
}

最后,分別測(cè)試以上三個(gè)類(選中需要測(cè)試的類---->鼠標(biāo)右鍵---->Run As---->Junit Test):

StudentTest類的測(cè)試結(jié)果圖:

StudentTest01類的測(cè)試結(jié)果圖:

AllTest類的測(cè)試結(jié)果圖:

有關(guān)java的測(cè)試就講到這里,希望對(duì)大家有幫助,有時(shí)間也會(huì)接著講講有關(guān)android的單元測(cè)試,和在手機(jī)上實(shí)現(xiàn)編寫一個(gè)UI界面替代eclipse如上圖中的測(cè)試界面;

希望本文所述對(duì)大家Java程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論