你的位置:首页 > ASP.net教程

[ASP.net教程]使用JUnit4进行java单元测试


 第一步:创建一个java工程,在工程中创建一个被单元测试的Student数据类,代码如下:

 1 package com.junittest.yu; 2  3 public class Student 4 { 5   private String name; 6   private String sex; 7   private int high; 8   private int age; 9   private String school;10   11   public Student(String name, String sex ,int high, int age, String school)12   {13     this.name = name;14     this.sex = sex;15     this.high = high;16     this.age = age;17     this.school = school;18   }19   public String getName()20   {21     return name;22   }23   public void setName(String name)24   {25     this.name = name;26   }27   public String getSex()28   {29     return sex;30   }31   public void setSex(String sex)32   {33     this.sex = sex;34   }35   public int getHigh()36   {37     return high;38   }39   public void setHigh(int high)40   {41     this.high = high;42   }43   public int getAge()44   {45     return age;46   }47   public boolean setAge(int age)48   {49     if (age >25)50     {51       return false;52     }53     else54     {55       this.age = age;56       return true;57     }        58   }59   60 61   public String getSchool()62   {63     return school;64   }65   public void setSchool(String school)66   {67     this.school = school;68   }69   70 }

部分截图如下:

 图 1-1

第二步:在eclipse下单元测试这个类
    首先,导入Junit包:选中java工程,点击鼠标右键--->选择属性---->在窗口中选Java构建路径---->选择库--->右侧点击添加库---->在弹出的窗口列表中选中Junit---->下一步----->Junit 4---->完成--->确定

部分截图如下:

 图 2-1

这样Junit 4包就导完了,接下来就是创建测试类:选中java工程,点击鼠标右键--->选择新建--->JUnit测试用例--->按图2-2编辑--->完成

 图 2-2

将测试类和被测试类放在不同的包中(也可以放在同一个包中,此处只是为了区别),测试类(1)代码如下:

 

 1 package com.junittest.yu.test; 2  3 import com.junittest.yu.Student; 4  5 import junit.framework.TestCase; 6  7 public class StudentTest01 extends TestCase 8 { 9 10   Student testStudent;11   //此方法在执行每一个测试方法之前(测试用例)之前调用12   @Override13   protected void setUp() throws Exception14   {15     // TODO Auto-generated method stub16     super.setUp();17     testStudent = new Student("djm", "boy", 178, 24, "齐鲁工业");18     System.out.println("setUp()");19   }20 21   //此方法在执行每一个测试方法之后调用22   @Override23   protected void tearDown() throws Exception24   {25     // TODO Auto-generated method stub26     super.tearDown();27     System.out.println("tearDown()");28   }29 30   //测试用例,测试Person对象的getSex()方法31   public void testGetSex()32   {33     assertEquals("boy", testStudent.getSex());34     System.out.println("testGetSex()");35   }36   37   //测试Person对象的getAge()方法38   public void testGetAge()39   {40     assertEquals(24, testStudent.getAge());41     System.out.println("testGetAge()");42   }43 }

完成后截图如下:

图 2-3

按以上方法创建测试类(2)代码如下:

 1 package com.junittest.yu.test; 2  3  4 import junit.framework.TestCase; 5  6 import com.junittest.yu.Student; 7  8 public class StudentTest extends TestCase 9 {10 11   private Student testStudent;12   13   @Override14   protected void setUp() throws Exception15   {16     // TODO Auto-generated method stub17     super.setUp();18     testStudent = new Student("steven_hu", "boy", 170 , 23, "上海理工");19   }20 21   @Override22   protected void tearDown() throws Exception23   {24     // TODO Auto-generated method stub25     super.tearDown();26   }27 28   public void testSetage()29   {30     assertTrue(testStudent.setAge(21));31   }32   33   public void testGetSchool()34   {35     //预期值和实际值不一样,测试时出现失败(Failure)36     assertEquals("南昌大学", testStudent.getSchool());37   }38   39   public void testGetName()40   {41     assertEquals("hdy", testStudent.getName());42   }43 }

完成截图如下:

 图 2-3

如果同时需要一起测试以上这两个测试类,可以通过TestSuite类实现,它相当于是一个套件,可以把所有测试类添进来一起运行测试

代码如下:

 1 package com.junittest.yu.test; 2  3  4  5 //import com.junittest.yu.test.StudentTest; 6 import com.junittest.yu.test.StudentTest01; 7  8 import junit.framework.Test; 9 import junit.framework.TestSuite;10 11 public class AllTest12 {13 14   //static PersonTest p = new PersonTest();15   //static PersonTest p1 = new PersonTest();16   public static Test suite()17   {18     TestSuite suite = new TestSuite("Test for com.junittest.yu.test.");19     //suite.addTest(p);20     //suite.addTest(p1);21     suite.addTestSuite(StudentTest.class);22     suite.addTestSuite(StudentTest01.class);23     return suite;24     25   }26 }

完成截图如下:

图 2-4  

第三步:分别测试以上三个类(选中需要测试的类---->鼠标右键---->运行方式---->Junit 测试)
StudentTest01类测试结果截图如下:

图 3-1

StudentTest类测试结果截图如下:

图 3-2

AllTest类测试结果截图如下:

图 3-3

到此java类的单元测试就完成了。

第四步:将Eclipse中java代码上传到GitHub

图 4-1

在java项目上右击--->Team--->共享项目--->Git--->按图4-2操作--->完成

图 4-2

将代码上传到GitHub:

在java项目上右击--->Team--->commit--->选中所有文件--->commit --->见图4-3--->URI就是GitHub自己仓库的地址--->见图4-4--->见图4-5--->图4-6

图 4-3

图 4-4

图 4-5

 

图 4-6

至此上传完成。

完成各阶段所需时间:

1,被测类代码编写 30%

2,测试类代码编写 40%

3,运行测试 10%

4,上传代码到GitHub 20%

附:GitHub  JUnit_Test库地址 https://github.com/yujk1230/JUnit_Test


 

参考资料:http://my.oschina.net/Chaos777/blog/349167

              http://blog.csdn.net/stevenhu_223/article/details/8269157