第一步:创建一个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
原标题:使用JUnit4进行java单元测试
关键词:JAVA