开发记录(第十八天)
第十八天:
扩展C表格的数据访问对象(DAO)类,增加更复杂的查询功能,如根据条件筛选记录。
深化单元测试,增加对新增查询功能的测试,并确保所有DAO方法的边界条件和异常情况都得到
// CTableDAO.java
public class CTableDAO {
private DataSource dataSource;
public CTableDAO(DataSource dataSource) {
this.dataSource = dataSource;
}
// ... 已有的增、删、改、查方法 ...
// 新增:根据条件筛选记录
public List<CTableRecord> queryRecordsByCondition(String condition) {
List<CTableRecord> records = new ArrayList<>();
// 使用JDBC或其他持久化框架根据条件查询记录
// 示例代码省略,实际应实现查询逻辑并填充records列表
return records;
}
// 其他DAO方法...
}
// CTableDAOTest.java
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
public class CTableDAOTest {
private CTableDAO cTableDAO;
private DataSource dataSource;
@BeforeEach
public void setUp() {
dataSource = getDataSource();
cTableDAO = new CTableDAO(dataSource);
}
// ... 已有的单元测试方法 ...
@Test
public void testQueryByCondition() {
// 准备测试数据
CTableRecord record1 = new CTableRecord();
record1.setColumnA("ConditionA1");
record1.setColumnB(123);
cTableDAO.insertRecord(record1);
CTableRecord record2 = new CTableRecord();
record2.setColumnA("ConditionA2");
record2.setColumnB(456);
cTableDAO.insertRecord(record2);
// 测试根据条件筛选记录
List<CTableRecord> results = cTableDAO.queryRecordsByCondition("ColumnA = 'ConditionA1'");
assertNotNull(results);
assertEquals(1, results.size());
assertEquals("ConditionA1", results.get(0).getColumnA());
assertEquals(123, results.get(0).getColumnB());
// 测试边界条件和异常情况(如空条件、无效条件等)
// ... 其他测试代码 ...
}
// 其他单元测试方法...
}

浙公网安备 33010602011771号