|
|
|
@ -12,37 +12,71 @@ import java.util.ArrayList;
|
|
|
|
|
|
|
|
|
|
|
|
import static org.junit.Assert.*;
|
|
|
|
import static org.junit.Assert.*;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 定义OrderInfoDaoTest类,用于对OrderInfoDao类中相关方法进行单元测试,
|
|
|
|
|
|
|
|
// 以此来验证这些方法在操作订单信息相关数据时功能是否正确,符合预期的业务逻辑
|
|
|
|
public class OrderInfoDaoTest {
|
|
|
|
public class OrderInfoDaoTest {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 创建OrderInfoDao类的实例,该类应该是负责与数据库等存储介质进行交互,
|
|
|
|
|
|
|
|
// 实现对订单信息(OrderInfo)相关的数据操作,比如插入、查询等功能,这里先实例化以便后续调用其方法进行测试
|
|
|
|
OrderInfoDao dao = new OrderInfoDao();
|
|
|
|
OrderInfoDao dao = new OrderInfoDao();
|
|
|
|
|
|
|
|
// 创建RoomTypeDao类的实例,这个类大概率是用于操作房间类型(RoomType)相关数据的,
|
|
|
|
|
|
|
|
// 例如从数据库中查询、更新房间类型信息等,在后续处理订单信息时可能会关联到房间类型数据,所以进行实例化
|
|
|
|
RoomTypeDao roomTypeDao = new RoomTypeDao();
|
|
|
|
RoomTypeDao roomTypeDao = new RoomTypeDao();
|
|
|
|
|
|
|
|
// 实例化LoginDao类,它应该是用于处理登录(Login)相关数据操作的类,比如查询登录用户信息等,
|
|
|
|
|
|
|
|
// 在订单信息处理中可能需要关联登录用户信息,因此创建该实例
|
|
|
|
LoginDao loginDao = new LoginDao();
|
|
|
|
LoginDao loginDao = new LoginDao();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 使用@Test注解标记该方法为JUnit测试方法,目的是测试OrderInfoDao类中的insertData方法,
|
|
|
|
|
|
|
|
// 该方法可能用于将一条订单信息数据插入到数据库等存储位置中,下面是具体的测试逻辑代码
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
public void insertData() throws Exception {
|
|
|
|
public void insertData() throws Exception {
|
|
|
|
|
|
|
|
// 创建一个OrderInfo类的实例,该类应该用于表示订单信息,不过这里创建时没有传入初始参数,
|
|
|
|
|
|
|
|
// 后续会通过相应的set方法来设置其各个属性的值,以此构造完整的订单信息对象
|
|
|
|
OrderInfo orderInfo = new OrderInfo();
|
|
|
|
OrderInfo orderInfo = new OrderInfo();
|
|
|
|
|
|
|
|
// 调用roomTypeDao的queryName方法,传入参数"123",尝试从数据库或其他存储中查询名称为"123"的房间类型信息,
|
|
|
|
|
|
|
|
// 并将查询结果(一个RoomType对象)赋值给roomType变量,该对象包含了对应的房间类型相关属性,如房间类型名称、价格等
|
|
|
|
RoomType roomType = roomTypeDao.queryName("123");
|
|
|
|
RoomType roomType = roomTypeDao.queryName("123");
|
|
|
|
Login login = (Login) loginDao.query(new Login("root",""));
|
|
|
|
// 调用loginDao的query方法,传入一个Login对象(这里使用Login类的构造函数创建了一个用户名是"root",密码为空的Login对象)作为查询条件,
|
|
|
|
|
|
|
|
// 该方法可能是根据传入的Login对象的相关属性(如用户名、密码等)在数据库中查找对应的登录用户信息,
|
|
|
|
|
|
|
|
// 并将查询结果(也是一个Login对象,包含用户的详细信息)强制转换后赋值给login变量,然后打印出这个登录用户信息(用于查看查询结果是否符合预期)
|
|
|
|
|
|
|
|
Login login = (Login) loginDao.query(new Login("root", ""));
|
|
|
|
System.out.println(login);
|
|
|
|
System.out.println(login);
|
|
|
|
|
|
|
|
// 通过orderInfo对象的setTypeId方法,将前面查询到的房间类型信息(roomType对象)设置到订单信息对象中,
|
|
|
|
|
|
|
|
// 表示该订单关联的房间类型,建立订单信息与房间类型信息之间的关联关系
|
|
|
|
orderInfo.setTypeId(roomType);
|
|
|
|
orderInfo.setTypeId(roomType);
|
|
|
|
|
|
|
|
// 使用orderInfo对象的setOperatorId方法,把查询到的登录用户信息(login对象)设置为订单的操作者信息,
|
|
|
|
|
|
|
|
// 也就是确定该订单是由哪个用户操作产生的,同样是在构建订单信息对象各属性之间的关联关系
|
|
|
|
orderInfo.setOperatorId(login);
|
|
|
|
orderInfo.setOperatorId(login);
|
|
|
|
|
|
|
|
// 通过orderInfo对象的setOrderId方法,设置订单的编号为"预定第3单",进一步完善订单信息对象的属性内容
|
|
|
|
orderInfo.setOrderId("预定第3单");
|
|
|
|
orderInfo.setOrderId("预定第3单");
|
|
|
|
|
|
|
|
// 调用dao实例的insertData方法,将构造好的orderInfo订单信息对象作为参数传入,
|
|
|
|
|
|
|
|
// 目的是通过OrderInfoDao类中实现的insertData方法将这条完整的订单信息插入到相应的数据库表等存储介质中,
|
|
|
|
|
|
|
|
// 如果插入过程中出现问题,会根据方法签名抛出异常(这里方法声明抛出Exception,实际可能是更具体的数据库相关异常等)
|
|
|
|
dao.insertData(orderInfo);
|
|
|
|
dao.insertData(orderInfo);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 使用@Test注解标记此方法为JUnit测试方法,推测是用于测试OrderInfoDao类中的queryOrder方法,
|
|
|
|
|
|
|
|
// 该方法可能是按照一定条件从数据库中查询订单信息,并返回一个包含多个OrderInfo对象的集合(ArrayList),
|
|
|
|
|
|
|
|
// 下面是具体的测试代码,包括调用方法、处理可能出现的异常以及遍历打印查询到的订单信息等操作
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
|
public void queryOrder(){
|
|
|
|
public void queryOrder() {
|
|
|
|
|
|
|
|
// 声明一个ArrayList类型的变量list,用于存储查询到的订单信息(OrderInfo对象)集合,初始化为null,
|
|
|
|
|
|
|
|
// 后续会通过调用dao的queryOrder方法获取实际的订单信息列表并赋值给它
|
|
|
|
ArrayList<OrderInfo> list = null;
|
|
|
|
ArrayList<OrderInfo> list = null;
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
list = dao.queryOrder(1,"测试");
|
|
|
|
// 调用dao实例的queryOrder方法,传入参数1和"测试"(具体含义取决于queryOrder方法的实现,可能是表示查询条件,
|
|
|
|
|
|
|
|
// 比如第一个参数是某种标识,第二个参数是模糊匹配的关键字等),尝试从数据库等存储中查询符合条件的订单信息,
|
|
|
|
|
|
|
|
// 并将查询结果(一个包含OrderInfo对象的ArrayList集合)赋值给list变量,如果查询过程中出现数据库相关的异常(SQLException),
|
|
|
|
|
|
|
|
// 则会进入catch块进行异常处理
|
|
|
|
|
|
|
|
list = dao.queryOrder(1, "测试");
|
|
|
|
|
|
|
|
// 遍历查询到的订单信息列表(list),对于其中的每一个OrderInfo对象(info),将其打印输出,
|
|
|
|
|
|
|
|
// 这样可以查看查询到的订单信息内容是否符合预期,便于验证queryOrder方法的查询结果是否正确
|
|
|
|
for (OrderInfo info : list)
|
|
|
|
for (OrderInfo info : list)
|
|
|
|
System.out.println(info);
|
|
|
|
System.out.println(info);
|
|
|
|
} catch (SQLException e) {
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
|
|
|
// 如果在调用queryOrder方法时出现SQLException异常(比如数据库连接问题、SQL语句执行错误等),
|
|
|
|
|
|
|
|
// 则会执行这个catch块中的代码,打印出异常的堆栈信息,方便排查问题所在,了解是哪里出现了错误导致查询失败
|
|
|
|
e.printStackTrace();
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|