[英]Creating a test for a method in Java DAO class
For the following Java class DAO I created in InteliJ, I need to create a test that:对于我在 InteliJ 中创建的以下 Java 类 DAO,我需要创建一个测试:
"Returns two reservations for test parkId 1." “返回 test parkId 1 的两个预留。”
I need help with writing the logic itself for a possible test我需要帮助编写逻辑本身以进行可能的测试
Here is the method:这是方法:
@Override
public List<UpcomingReservation> getAllUpcomingReservations() {
List<UpcomingReservation> reservations = new ArrayList<>();
String sql = "SELECT * FROM reservation WHERE from_date >= CURRENT_DATE AND from_date <= CURRENT_DATE + 30";
SqlRowSet results = jdbcTemplate.queryForRowSet(sql);
while (results.next()) {
reservations.add(mapRowToUpcomingReservation(results));
}
return reservations;
}
The correct SQL query was supposed to be as follows which would have included the parkID:正确的 SQL 查询应该如下所示,其中包含 parkID:
}
public List<Reservation> getAllReservationsNext30Days(int parkID) {
List<Reservation> reservations = new ArrayList<>();
String sql = "SELECT * FROM park JOIN campground ON park.park_id = campground.park_id JOIN site ON campground.campground_id = site.campground_id JOIN reservation ON site.site_id = reservation.site_id WHERE from_date >= CURRENT_DATE AND from_date <= CURRENT_DATE + 30";
SqlRowSet results = jdbcTemplate.queryForRowSet(sql);
while (results.next()) {
reservations.add(mapRowToReservation(results));
}
return reservations;
}
And the correct test I was trying to create was:我试图创建的正确测试是:
@Test
public void getUpcomingReservations_Should_ReturnNext30DayReservations(){
List<Reservation> upcomingReservation = dao.getAllReservationsNext30Days(1);
assertEquals(2, upcomingReservation.size());
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.