基于Struts+Spring+JDBC架构的课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
实训教学示例项目——《网上银行账户管理系统》——后台系统管理员系统的DAO组件及测试(第2部分)
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
基于Struts+Spring+JDBC架构的课程设计实训教学示例项目——《网上
银行账户管理系统》——后台系统管理员系统的DAO组件及测试(第
2/2部分)
3、添加一个工厂类,用来统一创建AdminUserManageDAOInterface接口的对象实例 (1)AdminUserManageDAOFactory类,包名称为com.px1987.webbank.factory,并且从java.util.Observable类继承
(2)编程该类
杨教授大学堂,版权所有,盗版必究。 1/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
package com.px1987.webbank.factory;
import java.util.Observable;
import com.px1987.webbank.config.ClassNameConfig;
import com.px1987.webbank.dao.inter.AdminUserManageDAOInterface; import com.px1987.webbank.exception.WebBankException; public class AdminUserManageDAOFactory extends Observable {
public AdminUserManageDAOFactory() {
}
public AdminUserManageDAOInterface newAdminManageDAOBean(String adminManageDAOJDBCImpleClassName) throws WebBankException {
AdminUserManageDAOInterface adminUserManageDAOJDBCImple=null;
Class oneClass=null;
try {
oneClass = Class.forName(adminManageDAOJDBCImpleClassName);
}
catch (ClassNotFoundException e) {
int
logImpleKind=Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));
this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));
this.setChanged(); //注意要设置变化点
notifyObservers(e); //当出现异常时将通知各个观察者
throw new WebBankException("不能正确地获得
杨教授大学堂,版权所有,盗版必究。 2/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
"+adminManageDAOJDBCImpleClassName+"类");
}
try {
adminUserManageDAOJDBCImple =
(AdminUserManageDAOInterface)oneClass.newInstance();
}
catch (InstantiationException e){
int logImpleKind=
Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));
this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));
this.setChanged(); //注意要设置变化点
notifyObservers(e); //当出现异常时将通知各个观察者
throw new WebBankException("不能正确地创建
"+adminManageDAOJDBCImpleClassName+"类的对象实例");
}
catch (IllegalAccessException e){
int logImpleKind=
Integer.parseInt(ClassNameConfig.getProperty("logImpleKind"));
this.addObserver(LogInfoFactory.newLogInstance(logImpleKind));
this.setChanged(); //注意要设置变化点
notifyObservers(e); //当出现异常时将通知各个观察者
throw new WebBankException("不能正确地创建
"+adminManageDAOJDBCImpleClassName+"类的对象实例");
}
return adminUserManageDAOJDBCImple;
}
}
4、修改classNameConfig.xml配置文件以添加下面的项目
adminManageDAOJDBCImple.className
杨教授大学堂,版权所有,盗版必究。 3/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
com.px1987.webbank.dao.imple.AdminUserManageDAOJDBCImple
1.1.1 对AdminUserManageDAOJDBCImple类进行单元测试
1、添加测试用例
(1)添加测试用例
(2)设置类名称为TestAdminUserManageDAOJDBCImple、包名称为com.px1987.webbank.daotest,并对
com.px1987.webbank.dao.imple.AdminUserManageDAOJDBCImple类进行测试
杨教授大学堂,版权所有,盗版必究。 4/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(3)选择各个被测试的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
2、编程该测试用例TestAdminUserManageDAOJDBCImple类
package com.px1987.webbank.daotest;
import java.util.Date;
import java.util.Iterator; import java.util.List;
import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test;
杨教授大学堂,版权所有,盗版必究。 5/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
import com.px1987.webbank.config.ClassNameConfig;
import com.px1987.webbank.dao.inter.AdminUserManageDAOInterface; import com.px1987.webbank.dao.inter.ConnectDBInterface; import com.px1987.webbank.dao.po.AdminUserInfoPO;
import com.px1987.webbank.exception.WebBankException; import com.px1987.webbank.factory.AdminUserManageDAOFactory; import com.px1987.webbank.factory.GenerialFactory;
import com.px1987.webbank.util.MD5JavaBean;
public class TestAdminUserManageDAOJDBCImple {
private AdminUserManageDAOInterface adminUserManageDAOJDBCImple = null;
String adminManageDAOJDBCImpleClassName=null;
@Before
public void setUp() throws Exception {
adminManageDAOJDBCImpleClassName=
ClassNameConfig.getProperty("adminManageDAOJDBCImple.className"); // adminUserManageDAOJDBCImple=new
AdminUserManageDAOFactory().newAdminManageDAOBean(adminManageDAOJDBCImpleClassName);
adminUserManageDAOJDBCImple = (AdminUserManageDAOInterface)new GenerialFactory().newSomeOneInstance(adminManageDAOJDBCImpleClassName);
}
@After
public void tearDown() throws Exception {
adminUserManageDAOJDBCImple = null;
}
@Test
public void testSelectOneAdminUserInfoData() throws WebBankException {
String userName="admin";
String userPassWord=new MD5JavaBean().getkeyBeanofStr("admin");
AdminUserInfoPO returnOneAdminUserInfoPO=
杨教授大学堂,版权所有,盗版必究。 6/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
adminUserManageDAOJDBCImple.selectOneAdminUserInfoData(userName,userPassWord);
Assert.assertNotNull(returnOneAdminUserInfoPO); //由于所给定的ID是数据
库
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
中存在的一个用户,因此能够返回该对象
}
@Test
public void testSelectAllAdminUserInfo() throws WebBankException {
List
allAdminUserInfos=adminUserManageDAOJDBCImple.selectAllAdminUserInfo();
Assert.assertNotNull(allAdminUserInfos);
Iterator allItem=allAdminUserInfos.iterator();
while(allItem.hasNext()){
AdminUserInfoPO oneAdminUserInfoPO=(AdminUserInfoPO)allItem.next();
Assert.assertNotNull(oneAdminUserInfoPO);
String adminUserName=oneAdminUserInfoPO.getUserName();
Assert.assertNotNull(adminUserName);
}
}
@Test
public void testSelectAllAdminUserNameInfo() throws WebBankException {
String userName="adm";
List returnAllAdminUserNameInfos=
adminUserManageDAOJDBCImple.selectAllAdminUserNameInfo(userName);
Assert.assertNotNull(returnAllAdminUserNameInfos);
Iterator allAdminNameItem=returnAllAdminUserNameInfos.iterator();
while(allAdminNameItem.hasNext()){
String oneAdminUserName=(String)allAdminNameItem.next();
Assert.assertNotNull(oneAdminUserName);
}
}
@Test
杨教授大学堂,版权所有,盗版必究。 7/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
public void testSelectOneAdminUserInfo() throws WebBankException{
//应该根据数据库表中的实际数据来决定
String adminUserID="402880681071d9f9011071d9fe770001";
AdminUserInfoPO returnOneAdminUserInfoPO=
adminUserManageDAOJDBCImple.selectOneAdminUserInfo(adminUserID);
//由于所给定的ID是数据库表中存在的一个用户,因此能够返回该对象
Assert.assertNotNull(returnOneAdminUserInfoPO);
}
@Test
public void testSelectOneAdminUserInfoByName() throws WebBankException {
//应该根据数据库表中的实际数据来决定
String userName="admin";
AdminUserInfoPO returnOneAdminUserInfoPO=
adminUserManageDAOJDBCImple.selectOneAdminUserInfoByName(userName);
//由于所给定的userName是数据库表中存在的一个用户,因此能够返回该对象
Assert.assertNotNull(returnOneAdminUserInfoPO);
}
@Test
public void testSelectOneAdminUserInfoString() throws WebBankException {
//应该根据数据库表中实际的数据值来决定
String userName="admin";
String passWordAsk="Who Are You?";
String passWordAnswer="zhang";
AdminUserInfoPO returnOneAdminUserInfoPO=
adminUserManageDAOJDBCImple.selectOneAdminUserInfo(userName,
passWordAsk, passWordAnswer);
//由于所给定的userName是数据库表中存在的一个用户,因此能够返回该对象
Assert.assertNotNull(returnOneAdminUserInfoPO);
}
@Test
杨教授大学堂,版权所有,盗版必究。 8/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
public void testSelectSomeAdminUserInfo() throws WebBankException{
String HQLQuery="select * from AdminUserInfo";
List allAdminUserInfos=
adminUserManageDAOJDBCImple.selectSomeAdminUserInfo(HQLQuery);
Assert.assertNotNull(allAdminUserInfos);
Iterator allIAdminUserInfoPOItem=allAdminUserInfos.iterator();
while(allIAdminUserInfoPOItem.hasNext()){
AdminUserInfoPO oneAdminUserInfoPO=
(AdminUserInfoPO)allIAdminUserInfoPOItem.next();
Assert.assertNotNull(oneAdminUserInfoPO);
String adminUserName=oneAdminUserInfoPO.getUserName();
Assert.assertNotNull(adminUserName);
}
}
/* 下面的方法应该只执行一次
@Test
public void testBatchDeleteAdminUserInfo() throws WebBankException{
List deletedUserIDs=new ArrayList();
//应该根据数据库表中的实际数据来决定
String userIDOne="517789136";
//String userIDTwo="-212445867";
//String userIDThree="-212415571";
deletedUserIDs.add(userIDOne);
//deletedUserIDs.add(userIDTwo);
//deletedUserIDs.add(userIDThree);
boolean returnBoolean=
adminUserManageDAOJDBCImple.batchDeleteAdminUserInfo(deletedUserIDs);
Assert.assertTrue(returnBoolean);
}
@Test
杨教授大学堂,版权所有,盗版必究。 9/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
public void testDeleteOneAdminUserInfo() throws WebBankException{
//应该根据数据库表中的实际数据来决定
String adminUserID="517706074";
boolean returnBoolean=
adminUserManageDAOJDBCImple.deleteOneAdminUserInfo(adminUserID);
Assert.assertTrue(returnBoolean);
}
*/
@Test
public void testInsertOneAdminUserInfo() throws WebBankException{
AdminUserInfoPO oneAdminUserInfoPO=new AdminUserInfoPO();
Date nowDate=new Date();
//不需要设置该值,可以由Hibernate自动来实现添加
oneAdminUserInfoPO.setId(new Integer((int)nowDate.getTime()).toString());
oneAdminUserInfoPO.setUserName("张三");
oneAdminUserInfoPO.setUserPassWord(new MD5JavaBean().getkeyBeanofStr("1234"));
oneAdminUserInfoPO.setUserType(1);
oneAdminUserInfoPO.setAliaoName("网上张飞");
oneAdminUserInfoPO.setPassWordAsk("Who Are You?");
oneAdminUserInfoPO.setUserImage("../webResource/PersonImage/Chang.gif");
oneAdminUserInfoPO.setRegisterTime(new
java.util.Date().toLocaleString());
oneAdminUserInfoPO.setPassWordAnswer("zhang");
oneAdminUserInfoPO.setUserMail("trainict@sohu.com");
oneAdminUserInfoPO.setUserSex(1);
oneAdminUserInfoPO.setUserBirthDay("2007-01-25");
oneAdminUserInfoPO.setUserComeFrom("北京");
oneAdminUserInfoPO.setUserResume("我是网络飞人");
oneAdminUserInfoPO.setWorkUnit("中科院计算所");
oneAdminUserInfoPO.setStudyHistory("大学毕业");
杨教授大学堂,版权所有,盗版必究。 10/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
oneAdminUserInfoPO.setStudySchool("XXX大学");
oneAdminUserInfoPO.setIdCardNo("12345678901234567");
oneAdminUserInfoPO.setConfirmDate("2007-01-25");
oneAdminUserInfoPO.setValidateFlag(true);
boolean actualReturn=
adminUserManageDAOJDBCImple.insertOneAdminUserInfo(oneAdminUserInfoPO);
Assert.assertTrue(actualReturn);
}
@Test
public void testUpdateOneAdminUserInfo() throws WebBankException{
//应该根据数据库表中的实际数据来决定
String adminUserID="402880681071d9f9011071d9fe7700011";
AdminUserInfoPO oneAdminUserInfoPO=new AdminUserInfoPO();
//不需要设置该值,可以由Hibernate自动来实现添加
oneAdminUserInfoPO.setId(adminUserID);
oneAdminUserInfoPO.setUserName("张三");
//本测试项目改变为此数据项目
oneAdminUserInfoPO.setUserPassWord(new
MD5JavaBean().getkeyBeanofStr("12345678"));
oneAdminUserInfoPO.setUserType(1);
oneAdminUserInfoPO.setAliaoName("网上张飞");
oneAdminUserInfoPO.setPassWordAsk("Who Are You?");
oneAdminUserInfoPO.setUserImage("../webResource/PersonImage/Chang.gif");
oneAdminUserInfoPO.setRegisterTime(new Date().toLocaleString());
oneAdminUserInfoPO.setPassWordAnswer("zhang");
oneAdminUserInfoPO.setUserMail("trainict@sohu.com");
oneAdminUserInfoPO.setUserSex(1);
oneAdminUserInfoPO.setUserBirthDay("2007-01-25");
oneAdminUserInfoPO.setUserComeFrom("北京");
oneAdminUserInfoPO.setUserResume("我是网络飞人");
杨教授大学堂,版权所有,盗版必究。 11/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
oneAdminUserInfoPO.setWorkUnit("中科院计算所");
oneAdminUserInfoPO.setStudyHistory("大学毕业");
oneAdminUserInfoPO.setStudySchool("XXX大学");
oneAdminUserInfoPO.setIdCardNo("12345678901234567");
boolean actualReturn=
adminUserManageDAOJDBCImple.updateOneAdminUserInfo(oneAdminUserInfoPO);
Assert.assertTrue(actualReturn);
}
@Test
public void testUpdateOneAdminUserPassWord() throws WebBankException{
//应该根据数据库表中的实际的数据值来决定
String newPassWord=new MD5JavaBean().getkeyBeanofStr("1234");
String registerUserId="402880681071d9f9011071d9fe770001";
boolean actualReturn=
adminUserManageDAOJDBCImple.updateOneAdminUserPassWord(newPassWord,
registerUserId);
Assert.assertTrue(actualReturn);
}
}
3、执行该测试用例TestAdminUserManageDAOJDBCImple类
(1)再数据库表中准备与测试有关的各种数据
(2)启动测试用例
杨教授大学堂,版权所有,盗版必究。 12/13页
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料
(3)产生出下面的执行结果
杨教授大学堂,版权所有,盗版必究。 13/13页