文档章节

junit进行单元测试

藍色的海
 藍色的海
发布于 2012/04/15 00:52
字数 546
阅读 98
收藏 1

先给出源文件代码:

数据持久层组件:UserInfo.java  //用户实体类

 

package com.lyq.model;

 public class UserInfo {
	 
 private int  id;
 private String account;
 private String password;
 
 public int getId() {
	return id;
 }
 public void setId(int id) {
	this.id = id;
 }
 public String getAccount() {
	return account;
 }
 public void setAccount(String account) {
	this.account = account;
 }
 public String getPassword() {
	return password;
 }
 public void setPassword(String password) {
	this.password = password;
 }
 
}

数据访问层组件:UserInfoDAO.java  //文件有一个添加用户的方法 int addUserInfo(UserInfo userInfo);

 

package com.lyq.dao;
import java.sql.PreparedStatement;
import java.sql.Connection;
import com.lyq.model.UserInfo;
import java.sql.ResultSet;
public class UserInfoDAO {
    Connection conn=null;
    ResultSet rs=null;
    static UserInfoDAO userInfoDAO=null;
    public static UserInfoDAO getUserInfoDAO(){
    	if(userInfoDAO==null)userInfoDAO=new UserInfoDAO();
    	return userInfoDAO;
    }
	public int addUserInfo(UserInfo userInfo){
		conn=DBCon.getConn();
		int i=-1;
		try{
		String sql="insert into tb_userinfo(account,password) values(?,?)";
		PreparedStatement pstmt=conn.prepareStatement(sql);
		pstmt.setString(1, userInfo.getAccount());
		pstmt.setString(2, userInfo.getPassword());
		i=pstmt.executeUpdate(sql); //此处方法调用错误,所以程序会出现异常
		}catch(Exception e){
			e.printStackTrace();
		}
		return i;
	}
}

下面开始进入单元测试,配置junit测试环境在此就不说了;

右击要进行测试的java类UserInfoDAO.java,

在弹出的对话框中选择setUp()和trearDown()方法,如图:

单击“Next”,在弹出的对话框中选择要测试的方法addUserInfo(UserInfo),如图:

单击“Finish",就会生成下面的测试用例文件 UserInfoDAOTest.java,如图:

在此处重写setUp()、tearDown()和testAddUserInfo()方法,重写后的文件如下:

 

package com.lyq.dao;

import static org.junit.Assert.*;

import com.lyq.model.UserInfo;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class UserInfoDAOTest {
	 UserInfoDAO userInfoDAO=null;
	 UserInfo userInfo=null;
	@Before
	public void setUp() throws Exception {
			userInfoDAO=UserInfoDAO.getUserInfoDAO();
			userInfo=new UserInfo();
			userInfo.setAccount("xiaoxiao");
			userInfo.setPassword("xiaohai");
			
	} @After public void tearDown() throws Exception {
		userInfoDAO=null;
	} @Test public void testAddUserInfo() {
		//fail("Not yet implemented");
		assertEquals("测试testAddUserInfo()方法失败!",userInfoDAO.addUserInfo(userInfo),1);
	}

}

上述代码中的assertEquals()方法是org.junit.Assert类中的静态方法。其用法如下:

assertEquals(String message,String expected,String actual)

其中,参数message表示断言失败的信息,可以省略;expected表示期望的数据;actual表示实际的数据。assertEquals()方法用来断言expected表示的数据与actual表示的数据相等,若不等,则抛出异常并输出message表示的提示信息。

运行测试用例,结果如图:

提示错误:期望值应为-1,但实际值为1.

现在把UserInfoDAO.java文件中addUserInfo(UserInfo userInfo)方法中的那条错误语句改正过来;

改为:i=pstmt.executeUpdate();

再次运行测试用例,就会出现期望的结果,如图:

 

© 著作权归作者所有

藍色的海
粉丝 3
博文 19
码字总数 7205
作品 0
广州
其他
私信 提问
JUnit 4.12 发布,Java 单元测试框架

JUnit 4.12 发布,此版本支持命令行选项;改进了断言,异常测试,超时测试等等测试方法。更新内容请见发行说明。 此版本现已提供下载: junit-4.12-javadoc.jar junit-4.12-sources.jar juni...

唐伟
2014/12/08
10.6K
4
IDEA配置JUnit进行单元测试

http://www.cnblogs.com/winner-0715/p/5597259.html 前提条件 安装JDK,并配置好环境变量 工程已解决JUnit依赖关系(pom.xml) IDEA中JUnit配置 IDEA自带一个JUnit插件,打开Settings窗口搜...

两毛五哥哥
2017/07/07
0
0
JUnit 4.13 Beta 1 发布,Java 单元测试框架

JUnit 4.13 版本的首个 Beta 版已发布。 JUnit 是一个 Java 语言的单元测试框架。它有自己的 JUnit 扩展生态圈,多数 Java 开发环境都已经集成了JUnit 作为单元测试的工具。JUnit 测试是程序...

局长
2018/11/27
428
4
JUnit 5.2.0 发布,Java 单元测试框架

JUnit 5.2.0 发布,JUnit 5.2.0 = Platform 1.2.0 + Jupiter 5.2.0 + Vintage 5.2.0,此次更新包括构建工具的增强、参数化测试的改进等。 更新信息如下: 构建工具功能增强以支持新的模块化体...

h4cd
2018/05/04
1K
2
IDEA中使用Junit Generator来自动生成test

在IDEA中安装Junit Generator V2.0插件用于单元测试,可直接File->Settings->Plugins直接搜索安装。 安装完Junit Generator插件之后,打开设置进行配置: Output Path为自动生成的test文件所...

莫在全
02/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ViewPager懒加载极致优化

目录介绍 01.ViewPager简单介绍 02.ViewPager弊端分析 03.ViewPager预加载 04.ViewPager部分源码 05.懒加载出现问题 06.如何实现预加载机制 07.懒加载配合状态管理器 吕诗禹想换个工作,渴望...

杨充
13分钟前
1
0
shadeEffect动态消失渲染

import QtQuick 2.0ShaderEffect { id:genieEffect anchors.centerIn: parent property variant source mesh:GridMesh{resolution: Qt.size(10,10)} propert......

蓝栩液枫
15分钟前
0
0
苦逼程序员的真实生活 

程序员这个行业虽然待遇还不错,但是不仅累,拿命去换取的,很多时候也是很苦逼的,有多少程序员还在苦苦追求心里的那个她。我就是千万程序员大军中的一员,其中有多苦逼我最清楚,以下的12张...

linux服务器架构
18分钟前
0
0
idea 创建maven 分支apply-patch中模块

1.点击idea 有上角的 project structure 2.选择modules-->点击“+”-->new module--->maven-->添加group id=com.paic.gamma.apply ,artifactid-分支名(qilu-bank),version=1.0-SNAPSHOT ......

qimh
22分钟前
0
0
企业在数字化转型,数据化运营上遇到了哪些困境,如何解决?

公司决策者意识到成功的数字体验越来越重要。调查受访者表示,这种成功的衡量标准是,用户体验和满意度提高(53%),市场敏捷性提高(49%),收入和盈利能力增加(49%),员工生产力提高(...

NBI大数据可视化
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部