利用EasyMock生成数据库连接简单测试示例
package demo.mock; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; public class LoginAction{ public String login(Connection conn, String name, int pas) { PreparedStatement pst = null;
ResultSet rs = null; try {
String sql = "select * from user where name = ? and pas = ?";
pst = conn.prepareStatement(sql);
pst.setString(1, name);
pst.setInt(2, pas);
rs = pst.executeQuery(); if(rs.next()) {
return "登陆成功。";
} else {
return "登陆失败。";
} }catch(SQLException e) {
e.printStackTrace();
return "抛出异常。";
} finally {
try {
rs.close();
pst.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
} } package demo.mock; import static org.easymock.EasyMock.createControl;
import static org.easymock.EasyMock.expect;
import static org.junit.Assert.assertEquals; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; import org.easymock.IMocksControl;
import org.junit.After;
import org.junit.Before;
import org.junit.Test; public class LoginActionTest { private LoginAction login; @Before
public void init() {
login = new LoginAction();
} @After
public void destory() {
login = null;
} @Test
public void login() throws SQLException{
String name = "admin";
int pas = 123; //创建Mock对象
IMocksControl control = createControl(); //创建多个Mock对象时通过IMocksControl管理 Connection conn = control.createMock(Connection.class);
PreparedStatement pst = control.createMock(PreparedStatement.class);
ResultSet rs = control.createMock(ResultSet.class); // 录制信息,即设定Mock对象的预期行为和输出
// 所有Mock对象需要执行的方法都必须录制,如pst.setInt(2, pas)、rs.close()等
String sql = "select * from user where name = ? and pas = ?";
expect(conn.prepareStatement(sql)).andReturn(pst).times(1); pst.setString(1, name);
pst.setInt(2, pas); expect(pst.executeQuery()).andReturn(rs);
expect(rs.next()).andReturn(true); rs.close();
pst.close(); //录制完成,切换replay状态
control.replay(); //调用实际的方法
String res = login.login(conn, name, pas);
String expected = "登陆成功。";
assertEquals(expected, res); //验证
control.verify(); } }
利用EasyMock生成数据库连接简单测试示例的更多相关文章
- Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
脚本开发-利用Loadrunner生成Web service测试脚本 1.选择协议--Web Service,如下图 2.导入服务 入口1:点击Manage Services ->弹出窗中选择“ ...
- C#与数据库连接简单测试
效果展示 数据库代码 create database OneDb go USE OneDb; GO CREATE TABLE classify --分类表 ( id ,), name ) not ...
- 学习笔记:利用GDI+生成简单的验证码图片
学习笔记:利用GDI+生成简单的验证码图片 /// <summary> /// 单击图片时切换图片 /// </summary> /// <param name=&quo ...
- Amdroid示例:利用Gson生成或解析json
转自:http://www.cnblogs.com/liqw/p/4266209.html 目前手机端和服务端数据交流格式一般是json,而谷歌提供了Gson来解析json.下载Gson:https: ...
- C# DateTime的11种构造函数 [Abp 源码分析]十五、自动审计记录 .Net 登陆的时候添加验证码 使用Topshelf开发Windows服务、记录日志 日常杂记——C#验证码 c#_生成图片式验证码 C# 利用SharpZipLib生成压缩包 Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库
C# DateTime的11种构造函数 别的也不多说没直接贴代码 using System; using System.Collections.Generic; using System.Glob ...
- 如何利用Pre.im分发iOS测试包
大众创新万众创业,在移动互联网的风口,移动APP开发与测试发展方兴未艾,受到了越来越多的重视.相较 iOS,Android 的开发环境更加开放.Android 开发者要测试应用时,只需发个 APK 安 ...
- 黄聪:利用OpenXml生成Word2007文档(转)
原文:http://blog.csdn.net/francislaw/article/details/7568317 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 一Op ...
- hadoop环境安装及简单Map-Reduce示例
说明:这篇博客来自我的csdn博客,http://blog.csdn.net/lxxgreat/article/details/7753511 一.参考书:<hadoop权威指南--第二版(中文 ...
- 利用OpenXml生成Word2007文档
一.OpenXml简介 利用C#生成Word文档并非一定要利用OpenXml技术,至少可以使用微软提供的Office相关组件来编程,不过对于Office2007(确切的说是Word.Excel和Pow ...
随机推荐
- 公有继承中派生类Student对基类Person成员的访问 代码参考
#include <iostream> #include <cstring> using namespace std; class Person { private: char ...
- 04 . Python入门之条件语句
一. Python条件语句 Python条件语句是通过一条或多条语句执行结果(True或False)来决定执行的代码块. 可以通过下图简单了解语句的执行过程 Python程序语言指定任何非0和非空(n ...
- vue 使用 elementUI 和 antd 的细微差别
Checkbox a-checkbox 没有value属性,绑定用checked Collapse 使用折叠面板的时候,antd 的层级关系是 .ant-collapse >.ant-colla ...
- Rocket - tilelink - Broadcast
https://mp.weixin.qq.com/s/-pjCLzzincJz0Z66orx8kg 介绍Broadcast的实现. 1. 基本介绍 TLBroadcast实现的是 ...
- AUTOSAR-软件规范文档中的UML
https://mp.weixin.qq.com/s/vm5vWNSpbNIYh25-LjJfYg AUTOSAR软件规范文档中存在两种UML图: Sequence diagrams Config ...
- Chisel3 - util - BitPat
https://mp.weixin.qq.com/s/80Q8j-OSMtgh5a92pI-MZA 使用value和mask来描述一个比特模式,即:value = bits & mask. ...
- Mysql多个字段合并成一个返回
可以使用CONCAT函数进行合并: SELECT CONCAT(IFNULL(t1.CITYNAME,''),IFNULL(t1.AREANAME,''),IFNULL(t1.STREETNAME,' ...
- RocketMQ系列(一)基本概念
RocketMQ是阿里出品的一款开源的消息中间件,让其声名大噪的就是它的事务消息的功能.在企业中,消息中间件选择使用RocketMQ的还是挺多的,这一系列的文章都是针对RocketMQ的,咱们先从Ro ...
- (Java实现) 最佳调度问题
题目描述 假设有n个任务由k个可并行工作的机器完成.完成任务i需要的时间为ti.试设计一个算法找出完成这n个任务的最佳调度,使得完成全部任务的时间最早. 对任意给定的整数n和k,以及完成任务i需要的时 ...
- Java实现 LeetCode 398 随机数索引
398. 随机数索引 给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引. 您可以假设给定的数字一定存在于数组中. 注意: 数组大小可能非常大. 使用太多额外空间的解决方案将不会通过测试 ...