第一次使用JUnit这个工具
我有一个函数,主要是 根据输入的日期 对数据库 进行检索,将结果显示在页面上请问大哥们,如何对这个函数进行UT?函数被调用如下
if(operation.saveAction(dateManageForm,request)){.....}函数如下
public boolean saveAction(F00009Form dateManageForm,
HttpServletRequest request){
//DB操作实例化
DBCommon db = new DBCommon();
//得到查询中得到的List值
List dataList = dateManageForm.getStrutsAction();
//考试ID
String testId = dateManageForm.getTestId();
//学科ID
String subjectId = dateManageForm.getSubjectId();
//考试日期
String testDate = dateManageForm.getTestDate();
//考试区分
String testDiff;
//考试区分要进行相应处理
if("one".equals(dateManageForm.getTestDiff()))
testDiff="1";
else
testDiff="0";
//实例化StrutsData
StrutsData sd = new StrutsData();
//初始化考试ID
sd.setTestId(testId);
//初始化学科ID
sd.setSubjectId(subjectId);
//初始化考试日期
sd.setTestDate(testDate);
//初始化考试区分
sd.setTestDiff(testDiff);
//实例化StringBuffer
StringBuffer sb = new StringBuffer();
//SQL语句
sb.append( "INSERT INTO testschedule" );
sb.append( "(" );
sb.append( "test_id" );
sb.append( "," );
sb.append( "subject_id" );
sb.append( "," );
sb.append( "test_date" );
sb.append( "," );
sb.append( "test_division" );
sb.append( ")" );
sb.append( "VALUES" );
sb.append( "(" );
sb.append( "'" );
sb.append(testId);
sb.append( "'" );
sb.append( "," );
sb.append( "'" );
sb.append(subjectId);
sb.append( "'" );
sb.append( "," );
sb.append( "'" );
sb.append(testDate);
sb.append( "'" );
sb.append( "," );
sb.append( "'" );
sb.append(testDiff);
sb.append( "'" );
sb.append( ")" );
//数据库连接
Connection conn=null;
if (!dateManageForm.getIsJunit()) {
conn = db.openConnection();
} else {
conn = db.junitOpenConnection();
}
Statement st = null;
try{
st = conn.createStatement();
//执行数据库操作
st.executeUpdate(sb.toString());
db.commit();
//往Session加入数值,页面显示操作结果
HttpSession session = request.getSession();
session.setAttribute("DBMessage", "保存成功");
}
catch(Exception ex){ //退回防止数据被死锁
db.rollback();
//在日志中设置错误信息
LogConst.setErrorMsg(this.getClass().getName(),ex.getMessage());
//往Session加入数值,页面显示操作结果
HttpSession session = request.getSession();
session.setAttribute("DBMessage", "保存失败");
//返回错误,跳转
return false;
}
finally{
try {
st.close();
conn.close();
} catch (SQLException e) {
//在日志中设置错误信息
LogConst.setErrorMsg(this.getClass().getName(),e.getMessage());
e.printStackTrace();
return false;
}
}
//往List中添加插入的数值
//dataList.add(sd);
//设置Form中添加List,这样就可以保存到Session
//dateManageForm.setStrutsAction(dataList);
return true;
}
我有一个函数,主要是 根据输入的日期 对数据库 进行检索,将结果显示在页面上请问大哥们,如何对这个函数进行UT?函数被调用如下
if(operation.saveAction(dateManageForm,request)){.....}函数如下
public boolean saveAction(F00009Form dateManageForm,
HttpServletRequest request){
//DB操作实例化
DBCommon db = new DBCommon();
//得到查询中得到的List值
List dataList = dateManageForm.getStrutsAction();
//考试ID
String testId = dateManageForm.getTestId();
//学科ID
String subjectId = dateManageForm.getSubjectId();
//考试日期
String testDate = dateManageForm.getTestDate();
//考试区分
String testDiff;
//考试区分要进行相应处理
if("one".equals(dateManageForm.getTestDiff()))
testDiff="1";
else
testDiff="0";
//实例化StrutsData
StrutsData sd = new StrutsData();
//初始化考试ID
sd.setTestId(testId);
//初始化学科ID
sd.setSubjectId(subjectId);
//初始化考试日期
sd.setTestDate(testDate);
//初始化考试区分
sd.setTestDiff(testDiff);
//实例化StringBuffer
StringBuffer sb = new StringBuffer();
//SQL语句
sb.append( "INSERT INTO testschedule" );
sb.append( "(" );
sb.append( "test_id" );
sb.append( "," );
sb.append( "subject_id" );
sb.append( "," );
sb.append( "test_date" );
sb.append( "," );
sb.append( "test_division" );
sb.append( ")" );
sb.append( "VALUES" );
sb.append( "(" );
sb.append( "'" );
sb.append(testId);
sb.append( "'" );
sb.append( "," );
sb.append( "'" );
sb.append(subjectId);
sb.append( "'" );
sb.append( "," );
sb.append( "'" );
sb.append(testDate);
sb.append( "'" );
sb.append( "," );
sb.append( "'" );
sb.append(testDiff);
sb.append( "'" );
sb.append( ")" );
//数据库连接
Connection conn=null;
if (!dateManageForm.getIsJunit()) {
conn = db.openConnection();
} else {
conn = db.junitOpenConnection();
}
Statement st = null;
try{
st = conn.createStatement();
//执行数据库操作
st.executeUpdate(sb.toString());
db.commit();
//往Session加入数值,页面显示操作结果
HttpSession session = request.getSession();
session.setAttribute("DBMessage", "保存成功");
}
catch(Exception ex){ //退回防止数据被死锁
db.rollback();
//在日志中设置错误信息
LogConst.setErrorMsg(this.getClass().getName(),ex.getMessage());
//往Session加入数值,页面显示操作结果
HttpSession session = request.getSession();
session.setAttribute("DBMessage", "保存失败");
//返回错误,跳转
return false;
}
finally{
try {
st.close();
conn.close();
} catch (SQLException e) {
//在日志中设置错误信息
LogConst.setErrorMsg(this.getClass().getName(),e.getMessage());
e.printStackTrace();
return false;
}
}
//往List中添加插入的数值
//dataList.add(sd);
//设置Form中添加List,这样就可以保存到Session
//dateManageForm.setStrutsAction(dataList);
return true;
}
解决方案 »
- jsp中<form>标记问题?头疼了很多天
- js 验证字符串方法?????
- struts2+Spring 中spring.xml配置问题请教!
- JSP错误页面exception总是为空的问题?
- 我用RESIN+JSP做的企业信息管理系统出现以下错误 什么原因啊!! 求救
- 小弟是新人,请大家指点
- 从数据库中读取二进制显示图片,每读一张都要取一次连接,导致数据库负荷超载,有什么好办法解决?急
- 如何在JSP页面调用一个可执行程序
- tomcat问题?高手救我啊!!
- JSP中怎么画线呀,我想知道,
- hibernate的QBC查询方式能实现多表连接查询吗?
- 急求:jsp应用中如何使用摄像头拍照并保存数据库中
在JDK1.4中,测试类继承自TestCase,把你的上面的代码放到测试类中,该测试类方法名是test开头的。
随便说下,我是struts,继承MockStrutsTestCase
例如:
assertEquals("1", String.valueOf(getRequest().getAttribute("subject_id")));
其中的“1”是你期望的值 后面就是在request里面取得的值
如果我测试的数据是故意错误的,该数据在页面上就已经被javascript验证掉了,这种数据是否要放到UT中去测试?如果要的话,怎么测??
如果我测试的数据是故意错误的,该数据在页面上就已经被javascript验证掉了,这种数据是否要放到UT中去测试?如果要的话,怎么测??如果可以确定一定不会有上述的错误数据提交到后台,那么可以不进行测试。