Java 單元測試(Junit)

來源:互聯網
上載者:User

標籤:

在有些時候,我們需要對我們自己編寫的代碼進行單元測試(好處是,減少後期維護的精力和費用),這是一些最基本的模組測試。當然,在進行單元測試的同時也必然得清楚我們測試的代碼的內部邏輯實現,這樣在測試的時候才能清楚地將我們希望代碼邏輯實現得到的結果和測試實際得到的結果進行驗證對比。

廢話少說,上代碼:

首先建立一個java工程,在工程中建立一個被單元測試的Student資料類,如下

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下單元測試這個類:  

 

首先匯入Junit包:選中java工程,點擊滑鼠右鍵--->選擇properties---->在視窗中選Java Build Path---->在右側點擊Add Library---->在彈出的視窗列表中選中Junit---->下一步----->Junit 4(我用的是Junit 4)---->finish

這樣Junit 4包就導完了,接下來就是建立測試類別:

 

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

 

測試類別1:

package com.phicomme.test;import com.phicomme.hu.Student;import junit.framework.TestCase;public class StudentTest01 extends TestCase{    Student testStudent;    //此方法在執行每一個測試方法之前(測試案例)之前調用    @Override    protected void setUp() throws Exception    {        // TODO Auto-generated method stub        super.setUp();        testStudent = new Student("djm", "boy", 178, 24, "華東政法");        System.out.println("setUp()");    }    //此方法在執行每一個測試方法之後調用    @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()    {        //預期值和實際值不一樣,測試時出現失敗(Failure)        assertEquals("南昌大學", testStudent.getSchool());    }        public void testGetName()    {        assertEquals("hdy", testStudent.getName());    }}

當然,如果同時需要一起測試以上這兩個測試類別,可以通過TestSuite類實現,它相當於是一個套件,可以把所有測試類別添進來一起運行測試;

代碼如下:

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;            }}

最後,分別測試以上三個類(選中需要測試的類---->滑鼠右鍵---->Run As---->Junit Test):

 

StudentTest類的測試結果圖:

StudentTest01類的測試結果圖:

AllTest類的測試結果圖:

 

有關java的測試就講到這裡,希望對大家有協助,有時間也會接著講講有關android的單元測試,和在手機上實現編寫一個UI介面替代eclipse如中的測試介面;

 

本文轉自:http://blog.csdn.net/stevenhu_223/article/details/8269157

Java 單元測試(Junit)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.