利用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 ...
随机推荐
- matlab自学笔记
1.字符串格式化,用sprintf如a=sprintf('%.2f_除以%d等于%.3f',1.5,2,0.75)%则a=1.50除以2等于0.750 2.for循环只能针对整数,不能遍历字符串或其他 ...
- 设计Dog类 代码参考
#include <iostream> #include <string> using namespace std; class Dog { private: string n ...
- JS代码静态分析及挖掘
JavaScript 已经成为现代 Web 浏览器开发中最普遍的技术之一.使用客户端 JavaScript 框架(如 AngularJS,ReactJS 和 Vue.js)构建的应用程序已向前端输送了 ...
- 线程池续:你必须要知道的线程池submit()实现原理之FutureTask!
前言 上一篇内容写了Java中线程池的实现原理及源码分析,说好的是实实在在的大满足,想通过一篇文章让大家对线程池有个透彻的了解,但是文章写完总觉得还缺点什么? 上篇文章只提到线程提交的execute( ...
- vue 使用 elementUI 和 antd 的细微差别
Checkbox a-checkbox 没有value属性,绑定用checked Collapse 使用折叠面板的时候,antd 的层级关系是 .ant-collapse >.ant-colla ...
- JavaSE (六)面向对象 -- 类的结构
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 目录 一.属性(变量) 1.变量的分类: 二.方法 1.例子: 2.格式: 3.方法的说明: 4.ret ...
- 一个神秘URL酿大祸,差点让我背锅!
神秘URL 我叫小风,是Windows帝国一个普通的上班族.上一回说到因为一个跨域请求,我差点丢了饭碗,好在有惊无险,我的职场历险记还在继续. "叮叮叮叮~~~~",闹钟又把我给吵 ...
- Java实现 蓝桥杯 算法训练 最小乘积
算法训练 最小乘积(基本型) 时间限制:1.0s 内存限制:512.0MB 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最 ...
- Java实现 蓝桥杯 算法提高 双十一抢购
试题 算法提高 双十一抢购 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 一年一度的双十一又来了,某网购网站又开始了半价销售的活动. 小G打算在今年的双十一里尽情地购物,以享受购买 ...
- C#Winform中resx文件无效 找不到路径
问题由来 笔者因为更改了添加的图片的路径,再把路径改成图片所在的路径还是报resx文件无效,未能找到路径 问题原因 其实这个问题是因为对对象的引用修改了,但是resx文件中的应用还是没有修改.因为re ...