使用JUnit4进行java单元测试
2015-09-06 12:56
513 查看
第一步:创建一个java工程,在工程中创建一个被单元测试的Student数据类,代码如下:
部分截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906111341873-1621007261.jpg)
图 1-1
第二步:在eclipse下单元测试这个类
首先,导入Junit包:选中java工程,点击鼠标右键--->选择属性---->在窗口中选Java构建路径---->选择库--->右侧点击添加库---->在弹出的窗口列表中选中Junit---->下一步----->Junit 4---->完成--->确定
部分截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906111826826-336627146.jpg)
图 2-1
这样Junit 4包就导完了,接下来就是创建测试类:选中java工程,点击鼠标右键--->选择新建--->JUnit测试用例--->按图2-2编辑--->完成
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906112456842-722247488.jpg)
图 2-2
将测试类和被测试类放在不同的包中(也可以放在同一个包中,此处只是为了区别),测试类(1)代码如下:
完成后截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906112915139-1387325351.jpg)
图 2-3
按以上方法创建测试类(2)代码如下:
完成截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906113437607-1232065067.jpg)
图 2-3
如果同时需要一起测试以上这两个测试类,可以通过TestSuite类实现,它相当于是一个套件,可以把所有测试类添进来一起运行测试
代码如下:
完成截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906113832389-1878493121.jpg)
图 2-4
第三步:分别测试以上三个类(选中需要测试的类---->鼠标右键---->运行方式---->Junit 测试)
StudentTest01类测试结果截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906114541873-579449169.jpg)
图 3-1
StudentTest类测试结果截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906114914467-2082072693.jpg)
图 3-2
AllTest类测试结果截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906115210186-1786685317.jpg)
图 3-3
到此java类的单元测试就完成了。
第四步:将Eclipse中java代码上传到GitHub
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906120446639-212468476.jpg)
图 4-1
在java项目上右击--->Team--->共享项目--->Git--->按图4-2操作--->完成
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906121101482-1209991273.jpg)
图 4-2
将代码上传到GitHub:
在java项目上右击--->Team--->commit--->选中所有文件--->commit --->见图4-3--->URI就是GitHub自己仓库的地址--->见图4-4--->见图4-5--->图4-6
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123305326-2033324318.jpg)
图 4-3
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123517592-1006843262.png)
图 4-4
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123638592-35487806.png)
图 4-5
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123932826-1241141397.jpg)
图 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
package com.junittest.yu; 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; } }
部分截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906111341873-1621007261.jpg)
图 1-1
第二步:在eclipse下单元测试这个类
首先,导入Junit包:选中java工程,点击鼠标右键--->选择属性---->在窗口中选Java构建路径---->选择库--->右侧点击添加库---->在弹出的窗口列表中选中Junit---->下一步----->Junit 4---->完成--->确定
部分截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906111826826-336627146.jpg)
图 2-1
这样Junit 4包就导完了,接下来就是创建测试类:选中java工程,点击鼠标右键--->选择新建--->JUnit测试用例--->按图2-2编辑--->完成
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906112456842-722247488.jpg)
图 2-2
将测试类和被测试类放在不同的包中(也可以放在同一个包中,此处只是为了区别),测试类(1)代码如下:
package com.junittest.yu.test; import com.junittest.yu.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()"); } }
完成后截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906112915139-1387325351.jpg)
图 2-3
按以上方法创建测试类(2)代码如下:
package com.junittest.yu.test; import junit.framework.TestCase; import com.junittest.yu.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()); } }
完成截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906113437607-1232065067.jpg)
图 2-3
如果同时需要一起测试以上这两个测试类,可以通过TestSuite类实现,它相当于是一个套件,可以把所有测试类添进来一起运行测试
代码如下:
package com.junittest.yu.test; //import com.junittest.yu.test.StudentTest; import com.junittest.yu.test.StudentTest01; 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.junittest.yu.test."); //suite.addTest(p); //suite.addTest(p1); suite.addTestSuite(StudentTest.class); suite.addTestSuite(StudentTest01.class); return suite; } }
完成截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906113832389-1878493121.jpg)
图 2-4
第三步:分别测试以上三个类(选中需要测试的类---->鼠标右键---->运行方式---->Junit 测试)
StudentTest01类测试结果截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906114541873-579449169.jpg)
图 3-1
StudentTest类测试结果截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906114914467-2082072693.jpg)
图 3-2
AllTest类测试结果截图如下:
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906115210186-1786685317.jpg)
图 3-3
到此java类的单元测试就完成了。
第四步:将Eclipse中java代码上传到GitHub
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906120446639-212468476.jpg)
图 4-1
在java项目上右击--->Team--->共享项目--->Git--->按图4-2操作--->完成
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906121101482-1209991273.jpg)
图 4-2
将代码上传到GitHub:
在java项目上右击--->Team--->commit--->选中所有文件--->commit --->见图4-3--->URI就是GitHub自己仓库的地址--->见图4-4--->见图4-5--->图4-6
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123305326-2033324318.jpg)
图 4-3
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123517592-1006843262.png)
图 4-4
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123638592-35487806.png)
图 4-5
![](http://images2015.cnblogs.com/blog/802848/201509/802848-20150906123932826-1241141397.jpg)
图 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
相关文章推荐
- struts2开发注意事项
- 【Java并发编程实战】—–“J.U.C”:Condition
- Java 工程转 C#
- 【Java并发编程实战】-----“J.U.C”:Condition
- Java Convert String & Int
- Java Convert String & Int
- Spring Auto proxy creator example
- Java编程脑图
- JAVA容器小结1
- JAVA实现File类中的遍历操作并输出内容
- java实例方法和静态方法的区别
- eclipse之GC overhead limit exceeded
- BC - Geometric Progression (等比数列的性质 + java大数)
- 【转】Java基础——成员变量、局部变量和静态变量的区别
- Spring学习之Aop的各种增强方法
- java从本地获取图片,并反转图片
- Java Spring MVC 后台拿不到前端请求的数组
- Java之extends implements
- Java Binary Tree DFS
- Java Binary Tree DFS