java編程之單元測試(Junit)實例分析(附實例源碼)
本文實例講述了java編程之單元測試。分享給大家供大家參考,具體如下:
完整實例代碼代碼點擊此處本站下載。
在有些時候,我們需要對我們自己編寫的代碼進(jìn)行單元測試(好處是,減少后期維護(hù)的精力和費用),這是一些最基本的模塊測試。當(dāng)然,在進(jìn)行單元測試的同時也必然得清楚我們測試的代碼的內(nèi)部邏輯實現(xiàn),這樣在測試的時候才能清楚地將我們希望代碼邏輯實現(xiàn)得到的結(jié)果和測試實際得到的結(jié)果進(jìn)行驗證對比。
廢話少說,上代碼:
首先創(chuàng)建一個java工程,在工程中創(chuàng)建一個被單元測試的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下單元測試這個類:
首先導(dǎo)入Junit包:選中java工程,點擊鼠標(biāo)右鍵--->選擇properties---->在窗口中選Java Build Path---->在右側(cè)點擊Add Library---->在彈出的窗口列表中選中Junit---->下一步----->Junit 4(我用的是Junit 4)---->finish
這樣Junit 4包就導(dǎo)完了,接下來就是創(chuàng)建測試類:
將測試類和被測試類放在不同的包中(也可以放在同一個包中,此處只是為了區(qū)別),代碼如下:
測試類1:
package com.phicomme.test;
import com.phicomme.hu.Student;
import junit.framework.TestCase;
public class StudentTest01 extends TestCase
{
Student testStudent;
//此方法在執(zhí)行每一個測試方法之前(測試用例)之前調(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í)行每一個測試方法之后調(diào)用
@Override
protected void tearDown() throws Exception
{
// TODO Auto-generated method stub
super.tearDown();
System.out.println("tearDown()");
}
//測試用例,測試Person對象的getSex()方法
public void testGetSex()
{
assertEquals("boy", testStudent.getSex());
System.out.println("testGetSex()");
}
//測試Person對象的getAge()方法
public void testGetAge()
{
assertEquals(24, testStudent.getAge());
System.out.println("testGetAge()");
}
}
測試類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ù)期值和實際值不一樣,測試時出現(xiàn)失敗(Failure)
assertEquals("南昌大學(xué)", testStudent.getSchool());
}
public void testGetName()
{
assertEquals("hdy", testStudent.getName());
}
}
當(dāng)然,如果同時需要一起測試以上這兩個測試類,可以通過TestSuite類實現(xiàn),它相當(dāng)于是一個套件,可以把所有測試類添進(jìn)來一起運行測試;
代碼如下:
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;
}
}
最后,分別測試以上三個類(選中需要測試的類---->鼠標(biāo)右鍵---->Run As---->Junit Test):
StudentTest類的測試結(jié)果圖:

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

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

有關(guān)java的測試就講到這里,希望對大家有幫助,有時間也會接著講講有關(guān)android的單元測試,和在手機(jī)上實現(xiàn)編寫一個UI界面替代eclipse如上圖中的測試界面;
希望本文所述對大家Java程序設(shè)計有所幫助。
相關(guān)文章
springboot整合dubbo設(shè)置全局唯一ID進(jìn)行日志追蹤的示例代碼
這篇文章主要介紹了springboot整合dubbo設(shè)置全局唯一ID進(jìn)行日志追蹤,本文通過圖文示例相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
Spring切面優(yōu)先級與基于xml的AOP實現(xiàn)方法詳解
這篇文章主要介紹了Spring切面的優(yōu)先級與基于xml的AOP的詳細(xì)步驟,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-11-11
從底層源碼深入分析Spring的IoC容器的實現(xiàn)原理
IoC容器負(fù)責(zé)管理對象的生命周期和依賴關(guān)系,大大簡化了應(yīng)用程序的開發(fā)和維,我們這篇文章將會從底層源碼的角度深入分析Spring的IoC容器實現(xiàn),探索它的工作原理和關(guān)鍵組件,需要的朋友可以參考下2023-07-07
JAVA錯誤:'無效目標(biāo)發(fā)行版?17'的解決方案
這篇文章主要給大家介紹了關(guān)于JAVA錯誤:'無效目標(biāo)發(fā)行版?17'的解決方案,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或使用java具有一的的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-09-09
關(guān)于idea中出現(xiàn)nbsp和zwsp的完美解決辦法
本文給大家介紹關(guān)于idea中出現(xiàn)nbsp和zwsp的解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-06-06
分布式調(diào)度器之Spring Task 的使用詳解
SpringTask是Spring框架中用于任務(wù)調(diào)度的組件,通過簡單的注解就能實現(xiàn)定時任務(wù)的創(chuàng)建和調(diào)度,可以通過配置線程池來實現(xiàn),本文給大家介紹分布式調(diào)度器之Spring Task 的使用,感興趣的朋友跟隨小編一起看看吧2024-10-10
SpringBoot實現(xiàn)RabbitMQ三種使用方式
本文主要介紹了SpringBoot實現(xiàn)RabbitMQ三種使用方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
java使用Process調(diào)用exe程序及Process.waitFor()死鎖問題解決
在編寫Java程序時,有時候我們需要調(diào)用其他的諸如exe,shell這樣的程序或腳本,下面這篇文章主要給大家介紹了關(guān)于java使用Process調(diào)用exe程序及Process.waitFor()死鎖問題解決的相關(guān)資料,需要的朋友可以參考下2022-12-12

