开发记录(第十九天)
第十九天:
开发C表格的服务层类,封装业务逻辑,并提供给控制器层调用。
进行服务层与DAO层的集成测试,确保服务层方法能够正确调用DAO层方法,并处理异常和边界情况。
// CTableService.java
public class CTableService {
private CTableDAO cTableDAO;
public CTableService(CTableDAO cTableDAO) {
this.cTableDAO = cTableDAO;
}
// 封装业务逻辑,提供添加记录的服务方法
public void addCTableRecord(CTableRecord record) {
// 可以在这里添加业务逻辑,如数据验证、日志记录等
cTableDAO.insertRecord(record);
}
// 封装业务逻辑,提供根据条件筛选记录的服务方法
public List<CTableRecord> getCTableRecordsByCondition(String condition) {
// 可以在这里添加业务逻辑,如条件格式化、缓存处理等
return cTableDAO.queryRecordsByCondition(condition);
}
// 其他服务方法...
}
// CTableServiceTest.java
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
import org.mockito.Mockito;
public class CTableServiceTest {
private CTableService cTableService;
private CTableDAO cTableDAO;
@BeforeEach
public void setUp() {
// 使用Mockito创建CTableDAO的模拟对象
cTableDAO = Mockito.mock(CTableDAO.class);
cTableService = new CTableService(cTableDAO);
}
@Test
public void testAddCTableRecord() {
CTableRecord record = new CTableRecord();
record.setColumnA("TestA");
record.setColumnB(789);
// 模拟DAO层行为
Mockito.doNothing().when(cTableDAO).insertRecord(record);
// 调用服务层方法
cTableService.addCTableRecord(record);
// 验证DAO层方法是否被调用
Mockito.verify(cTableDAO).insertRecord(record);
}
@Test
public void testGetCTableRecordsByCondition() {
List<CTableRecord> mockRecords = new ArrayList<>();
CTableRecord record = new CTableRecord();
record.setColumnA("TestCondition");
record.setColumnB(101);
mockRecords.add(record);
// 模拟DAO层行为
Mockito.when(cTableDAO.queryRecordsByCondition("ColumnA = 'TestCondition'")).thenReturn(mockRecords);
// 调用服务层方法
List<CTableRecord> results = cTableService.getCTableRecordsByCondition("ColumnA = 'TestCondition'");
// 验证结果
assertNotNull(results);
assertEquals(1, results.size());
assertEquals("TestCondition", results.get(0).getColumnA

浙公网安备 33010602011771号