上课札记_单元测试JUnit

上课笔记_单元测试JUnit
单元测试 

单元测试就是整合程序代码到系统的其余部分之前先测试以便找出程序代码中的bugs,单元测试是白盒测试;

有很多测试工具我们为什么要选择JUnit测试工具?

1. 开源
2. 使用简单
3. 可以扩展功能


MyEclipse集合了JUnit;这里通过导入jar包来实现。
Junit4下载地址:http://pan.baidu.com/s/1kTLZa3X
我们一般在项目右击新建一个source foler :test  ;(发布的时候test不会被发布)
新建包名和要测试的类的包名一样;这样比较清楚,而且不用导包; 
测试的项目可以在上一篇文章下载:
比如要测试SumService, 可以在test新建包cn.edu.hqu.service再新建测试类:SumServiceTest,继承TestCase

package cn.edu.hqu.service;

import cn.edu.hqu.service.impl.SumServiceImpl;

import junit.framework.TestCase;

public class SumServiceTest extends TestCase {

	//init 
	@Override
	protected void setUp() throws Exception {
		super.setUp();
	}

	public void testGetSum() {
		int n = 100;
		SumService service = new SumServiceImpl();
		int result = service.getSum(n);
		System.out.println("总和: " + result);
	}

}
右击方法:testGetSum →Run As →JunitTest 

控制台输出:总和: 5050

 

使用注解的方式:(我们一般使用这种)

新建类SumServiceTest2

package cn.edu.hqu.service;

import junit.framework.Assert;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import cn.edu.hqu.service.impl.SumServiceImpl;

public class SumServiceTest2 {
	@Before
	public void befort() {
		//在执行testGetSum()之前执行
		System.out.println("befrot");
	}

	@Test
	public void testGetSum() {
		int n = 100;
		SumService service = new SumServiceImpl();
		int result = service.getSum(n);
		
/*		//断言  不用看结果就知道是不是错的了 ,因为我们在这里做判断对不对了
		//expected, actual 期望值,真实值
		//如果一样就不报错(绿条),不一样junit就报错(红条) testGetSum错误
		Assert.assertEquals("testGetSum错误",5050, result);
		//...
*/		
		System.out.println("总和: " + result);
	}

	@After
	public void after() {
		//在执行testGetSum()之后执行
		System.out.println("After");
	}

}

右击方法:testGetSum →Run As →JunitTest 

控制台输出:

befrot
总和: 5050
After


下面我们做一下项目的Client 的Test:

junit4的jar导入Client;

在项目Client下的src新建Source Folder :test在test下新建测试类:SumServiceTest

import java.net.URL;
import org.codehaus.xfire.client.Client;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class SumServiceTest {
	private Client client = null;

	@Before
	public void before() throws Exception {
		URL url = new URL("http://localhost:8080/SumWebService/services/SumService?wsdl");
		client = new Client(url);
	}

	@Test
	public void testGetSum() throws Exception {
		Object[] o = client.invoke("getSum", new Object[] { 100 });
		Assert.assertNotNull("返回值为null", o);
		Assert.assertEquals(5050, o[0]);
	}
}


点击testGetSum方法 运行,看到绿条,说明是对的,和我们期望的值一样的,可以复制很多个类似testGetSum测试很方便的进行测试

代码:http://pan.baidu.com/s/1gd7UcAB