对一段Java代码的单元测试

Posted 星光漫过老树藤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对一段Java代码的单元测试相关的知识,希望对你有一定的参考价值。

  
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---->finish

 

测试类1 2

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, "XX大学");  
        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()");  
    }  
}  

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, "XX大学");  
    }  
  
    @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("XX大学", testStudent.getSchool());  
    }  
      
    public void testGetName()  
    {  
        assertEquals("hdy", testStudent.getName());  
    }  
}  

 

StudentTest类的测试结果图:

 

StudentTest01类的测试结果图:

以上是关于对一段Java代码的单元测试的主要内容,如果未能解决你的问题,请参考以下文章

单元测试

单元测试实战(四种覆盖详解测试实例)

单元测试不了解 XCTest 期望的异步 UI 代码?

对一段Go语言代码输出结果的简要分析

SpringBoot项目单元测试

JUnit单元测试