上课笔记_单元测试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

上课笔记_单元测试JUnit

时间: 2024-12-18 21:40:03

上课笔记_单元测试JUnit的相关文章

上课笔记_使用DWR实现自动补全 类似百度搜索框的自动显示效果

使用DWR实现自动补全 自动补全:是指用户在文本框中输入前几个字母或汉字的时候,自动在存放数据的文件或数据库中将所有以这些字母或汉字开头的数据提示给用户供用户选择 在日常上网过程中,我们经常使用搜索引擎,当我们输入想要检索的关键字时,搜索引擎会提示我们相关的关键字 训练要点: 掌握使用DWR框架开发Ajax程序 使用MyEclipse 10.0 + MySql5.0 新建数据库:可以手动随便新建一个测试用的 DROP TABLE IF EXISTS `books`; CREATE TABLE `

5月3日上课笔记-properties文件,junit测试,mvc封层等

StringBuffer 线程安全,效率低 StringBuilder 线程不安全,效率高 判断数组是null还是空数组 null 空数组 int[] array=null; int[] array2= new int[]{}; 创建几个对象? String s=new String("关羽"); 创建了两个对象 1.*读取properties配置文件 dbinfo.properties a.反射的类加载器读取配置文件 反射: 将类的各种成分映射成相应的类 b.工具类ResourceB

Linux第五周上课笔记(1),rpm软件安装,yum源,yum仓库

第五周上课笔记 一.应用软件的安装 1.认识软件:|libmp3lame0|-3.99.3-23|.el7|.x86_64|.rpm 软件名     软件版本   适用系统 64位  红帽适用软件 2.如何安装软件 1.rpm rpm      -vih    name.rpm      安装,-v:显示过程,-h:指定加密方式为哈希加密 -e      name          卸载 -q      name          查询软件生成文件 -qlp  name.rpm        查

单元测试Junit

###<center> 单元测试Junit </center>###- - -1.**单元测试**:> ==单元测试==是软件之中对于最小的功能模块的的测试,其可以对最基本的软件构成单元来测试.> 需要注意的是:> >**测试用例是用来达到测试想要的预期结果,而不能测试出程序的逻辑错误**. 2.**JUnit**:>1.**Junit是基于断言机制的**.是用于编写可复用测试集的简单框架,是xUnit的一个子集.xUnit是一套基于测试驱动开发的测试

Android Day02-Android中单元测试(junit测试)&monkey测试

Android中junit测试有2种实现方式 第1种:一般Android工程的实现方式 1.在清单文件中添加2项内容 首先在AndroidManifest.xml中加入下面红色代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.action" android:versionCode="1"  android:v

Effective C++_笔记_条款08_别让异常逃离析构函数

(整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) C++并不禁止析构函数吐出异常,但它不鼓励你这样做.考虑如下代码: 1: class Widget{ 2: public: 3: ... 4: ~Widget() {...} //假设这个可能吐出一个异常 5: }; 6:  7: void doSomething() 8: { 9: vector<Widget> v ; //v在这里被自动销毁 10: ...

上课笔记_Ajax框架,DWR介绍,应用,例子

使用Ajax框架 1. 简化JavaScript的开发难度 2. 解决浏览器的兼容性问题 3. 简化开发流程 常用Ajax框架 Prototype 一个纯粹的JavaScript函数库,对Ajax提供良好支持 jQuery 1.非常优秀的JavaScript库,对Ajax提供了良好的支持 2.与Prototype设计思想不同的是在使用jQuery之后,开发者操作的不再是DOM对象而是jQuery对象 DWR 1.        非常专业的Java Ajax框架 2.        通过DWR框架

Java 单元测试Junit

@Test @Before @After 测试方法运行前执行Before动作(比如创建资源),运行后执行After动作(比如销毁资源) @BeforeClass @AfterClass 测试类运行前执行Before动作(比如创建资源),运行后执行After动作(比如销毁资源) Assert 对方法结果进行判断,是否等于希望值,是否为空等 表示测试通过不通过 Java 单元测试Junit,布布扣,bubuko.com

十五、Android学习笔记_授权过程

1.需要申请App Key和App Secret.不同的开发平台有不同的接入方式,可以参考文档,然后将这两个值放进去. 2.通过OAuth类实现认证,它会自动跳转到认证界面,进行授权,成功之后需要处理回调接口. 3.在第二步调用回调接口时,它会返回用户的基本信息,比如用户id.此时需要将用户id信息保存起来,为后面登录做准备.回调接口的写法就为myapp://AuthorizeActivity,其中scheme全部为小写字母. <activity android:name="com.wei