码迷,mamicode.com
首页 > 其他好文 > 详细

三分钟掌握 JUnit3.0

时间:2015-06-05 21:17:53      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:junit   单元测试   myeclipse   java   

     以前公司做过一个.net的项目,在项目开发的过程中,我们采用的是分层的开发方式,大家先在一起讨论接口, 然后讨论完以后,形成文档,然后按照文档进行开发!这样就有一个问题,你必须要保证你的接口是正确的,然后才能提供给其他人使用。所以一定要对你写的方法进行单元测试。单元测试真的是很方便!

    现在的公司是开发java 项目的,开发过程也和.net的开发模式是一样的,所以说单元测试也成了必需品。但是我们用的JUnit。下边就给大家介绍一下JUnit的使用方法。

    我们首先来建立一个项目,项目结构如下如下图所示!

     技术分享

    然后倒入我们需要的jar包,我用的Myeclipse ,他集成了JUnit,所以说直接添加他的jar就可以了,在项目上单击右键,选择BuildPath 然后选择Libraries, 然后选择JUnit,他会有两个版本,Junit3 和Junit 4然后选择一个, 本项目选择的是Junit3 ,添加完成后, 项目中会多出一个Junit3的 一个库。

    然后在项目的根目录下建一个Source Folder 如下图所示, 然后在建立一个和src 下边一样的包。这么做的目的是使下边要生成的测试类,不用引用对被测试类的依赖。他们生成的.class文件在同一个Bin文件夹下。

    技术分享

    在我们的要测试的那个类上边单击右键, 然后选择New ,然后选择Others ,然后选择Junit Test Case。 然后Source folder 选择我们后来建立的测试的Source folder。然后将setUp和tearDown勾选上!

    技术分享

    将我们我们要测试的那个类的所有的方法都勾选上,或者勾选我们要测试的方法就可以了!然后选择完成!

    技术分享

    这样就会看到我们的测试类已经自动的为我们生成好了。但是我们可以看到,自动为我们生成的测试方法,都是没有实现的,而且这些测试方法符合了一定的规范。测试方法满足如下原则: 1)方法类型必须为public 2)返回值void 3)无参数 4)方法名必须以test开头或者以test结尾,但是建议使用前者!

所以接下来我们要自己写测试方法的实现了!,如下所示。

 
package com.tgb.test;

import junit.framework.Assert;
import junit.framework.TestCase;

public class CountMethodTest extends TestCase {

	/**
	 * setUp在每个测试方法执行前都要执行 该方法
	 */
	protected void setUp() throws Exception {
		super.setUp();
	}

	/**
	 * tearDown  在每个测试方法执行完成后都要执行 该方法
	 */
	protected void tearDown() throws Exception {
		super.tearDown();
	}

	/**
	 * 测试目标类的add 方法
	 */
	public void testAdd() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		//该值为执行完目标类方法后,返回的实际值 
		int actual= cm.add(par1, par2);
		// 判断方法的返回结果
        Assert.assertEquals(3, actual);// 第一个参数是期望值,第二个参数是要验证的值
	}

	public void testSubtract() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		int actual= cm.subtract(par1, par2);
		assertEquals(3, actual);
	}

	public void testMultiply() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		int actual= cm.multiply(par1, par2);
		assertEquals(0, actual);
	}

	public void testDiv() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		int actual= cm.div(par1, par2);
		assertEquals(0, actual);
	}
}


    然后我们在该测试类的空白处单击右键选择 Run As 然后选择Junit Test 。这样我们就可以执行我们刚才写的单元测试了!

    技术分享

    可以看到测试结果如下,执行了四个方法,有一个错误的。可以看到打叉的那个失败了! 通过单元测试,我们可以很快的发现我们的方法写的是否正确!

         

       技术分享       

    如果在测试的SourceFolder下面有多个单元测试类,我们想统一进行单元测试,你会怎么处理呢?我们可以一个个的去手动执行,然后在哪等着结果,是不是有点浪费时间呢!Junit 给我提供了一个更好的方法,我们在建立一个测试类,然后 该类的写法如下,这样我们就可以一次性的把所有的方法都执行了!

   

package com.tgb.test;

import junit.framework.Assert;
import junit.framework.TestCase;

public class CountMethodTest extends TestCase {

	/**
	 * setUp在每个测试方法执行前都要执行 该方法
	 */
	protected void setUp() throws Exception {
		super.setUp();
	}

	/**
	 * tearDown  在每个测试方法执行完成后都要执行 该方法
	 */
	protected void tearDown() throws Exception {
		super.tearDown();
	}

	/**
	 * 测试目标类的add 方法
	 */
	public void testAdd() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		//该值为执行完目标类方法后,返回的实际值 
		int actual= cm.add(par1, par2);
		// 判断方法的返回结果
        Assert.assertEquals(3, actual);// 第一个参数是期望值,第二个参数是要验证的值
	}

	public void testSubtract() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		int actual= cm.subtract(par1, par2);
		assertEquals(3, actual);
	}

	public void testMultiply() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		int actual= cm.multiply(par1, par2);
		assertEquals(0, actual);
	}

	public void testDiv() {
		int par1=3;
		int par2=0;
		CountMethod cm = new CountMethod();
		int actual= cm.div(par1, par2);
		assertEquals(0, actual);
	}
}

    Junit 的使用,很方便的让我们测试类,但是他生成的测试方法体是空的,都需要自己写, 如果能想.Net 中那样,把测试方法体,大部分的内容都给你写好了就更好了!

三分钟掌握 JUnit3.0

标签:junit   单元测试   myeclipse   java   

原文地址:http://blog.csdn.net/zhanghongjie0302/article/details/46381205

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!