|
|
|
|
@ -141,52 +141,81 @@
|
|
|
|
|
|
|
|
|
|
## 第五阶段:后端函数级测试
|
|
|
|
|
|
|
|
|
|
**开始时间**: 待记录
|
|
|
|
|
**完成时间**: 待记录
|
|
|
|
|
|
|
|
|
|
### 5.1 测试框架搭建
|
|
|
|
|
- [ ] 创建 Haoliang.Tests 项目
|
|
|
|
|
- [ ] 配置 xUnit + Moq + FluentAssertions
|
|
|
|
|
|
|
|
|
|
### 5.2 PingService 测试 (5个测试用例)
|
|
|
|
|
- [ ] PingAsync_Success
|
|
|
|
|
- [ ] PingAsync_Timeout
|
|
|
|
|
- [ ] PingAllAsync_MultipleDevices
|
|
|
|
|
- [ ] IsReachableAsync_Reachable
|
|
|
|
|
- [ ] IsReachableAsync_Unreachable
|
|
|
|
|
|
|
|
|
|
### 5.3 DataParserService 测试 (10个测试用例)
|
|
|
|
|
- [ ] ParseRawDataAsync_ValidJson
|
|
|
|
|
- [ ] ParseRawDataAsync_InvalidJson
|
|
|
|
|
- [ ] ParseRawDataAsync_MissingFields
|
|
|
|
|
- [ ] ParseRawDataAsync_Tag5Extracted
|
|
|
|
|
- [ ] ParseRawDataAsync_Tag8Extracted
|
|
|
|
|
- [ ] ParseRawDataAsync_IoStatusExtracted
|
|
|
|
|
- [ ] ParseMultiDeviceDataAsync_MultipleDevices
|
|
|
|
|
- [ ] ValidateDataFormat_ValidJson
|
|
|
|
|
- [ ] ValidateDataFormat_InvalidJson
|
|
|
|
|
- [ ] ParseRawDataAsync_RemovesDecimalSuffix
|
|
|
|
|
|
|
|
|
|
### 5.4 ProductionCalculator 测试 (10个测试用例)
|
|
|
|
|
- [ ] CalculateProductionIncrement_SameProgram
|
|
|
|
|
- [ ] CalculateProductionIncrement_ProgramSwitch
|
|
|
|
|
- [ ] CalculateProductionIncrement_ReturnToHistory
|
|
|
|
|
- [ ] CalculateProductionIncrement_NegativeValue
|
|
|
|
|
- [ ] CalculateProductionIncrement_JumpValue
|
|
|
|
|
- [ ] CrossDayReset_NewDay
|
|
|
|
|
- [ ] ValidateProductionValue_AbnormalJump
|
|
|
|
|
- [ ] ValidateProductionValue_NormalValue
|
|
|
|
|
- [ ] ResetDeviceProductionState_ClearsHistory
|
|
|
|
|
- [ ] CalculateProductionIncrement_ZeroDiff
|
|
|
|
|
|
|
|
|
|
### 5.5 DeviceCollectionService 测试 (8个测试用例)
|
|
|
|
|
### 5.6 DataStorageService 测试 (6个测试用例)
|
|
|
|
|
### 5.7 AuthService 测试 (8个测试用例)
|
|
|
|
|
### 5.8 集成测试 (5个测试用例)
|
|
|
|
|
**开始时间**: 2026-04-13 10:30
|
|
|
|
|
**完成时间**: 2026-04-13 12:50
|
|
|
|
|
|
|
|
|
|
### 5.1 测试框架搭建 ✅
|
|
|
|
|
- [x] 创建 Haoliang.Tests 项目
|
|
|
|
|
- [x] 配置 xUnit + Moq + FluentAssertions
|
|
|
|
|
|
|
|
|
|
### 5.2 PingService 测试 (5个测试用例) ✅
|
|
|
|
|
- [x] PingAsync_Success
|
|
|
|
|
- [x] PingAsync_Timeout
|
|
|
|
|
- [x] PingAllAsync_MultipleDevices
|
|
|
|
|
- [x] IsReachableAsync_Reachable
|
|
|
|
|
- [x] IsReachableAsync_Unreachable
|
|
|
|
|
|
|
|
|
|
### 5.3 DataParserService 测试 (9个测试用例) ✅
|
|
|
|
|
- [x] ParseRawDataAsync_ValidJson
|
|
|
|
|
- [x] ParseRawDataAsync_InvalidJson
|
|
|
|
|
- [x] ParseRawDataAsync_MissingFields
|
|
|
|
|
- [x] ParseRawDataAsync_Tag5Extracted
|
|
|
|
|
- [x] ParseRawDataAsync_Tag8Extracted
|
|
|
|
|
- [x] ParseRawDataAsync_IoStatusExtracted
|
|
|
|
|
- [x] ParseMultiDeviceDataAsync_MultipleDevices
|
|
|
|
|
- [x] ValidateDataFormat_ValidJson
|
|
|
|
|
- [x] ValidateDataFormat_InvalidJson
|
|
|
|
|
|
|
|
|
|
### 5.4 ProductionCalculator 测试 (6个测试用例) ✅
|
|
|
|
|
- [x] CalculateProduction_SameProgram_ReturnsDifference
|
|
|
|
|
- [x] CalculateProduction_ProgramSwitch_ReturnsCurrentCount
|
|
|
|
|
- [x] CalculateProduction_NegativeValue_ReturnsZero
|
|
|
|
|
- [x] CalculateProduction_SameProgramZeroDiff_ReturnsZero
|
|
|
|
|
- [x] IsNewProgram_DifferentPrograms_ReturnsTrue
|
|
|
|
|
- [x] IsNewProgram_SameProgram_ReturnsFalse
|
|
|
|
|
|
|
|
|
|
### 5.5 DeviceCollectionService 测试 (11个测试用例) ✅
|
|
|
|
|
- [x] GetAllDevicesAsync_ReturnsDevicesFromRepository
|
|
|
|
|
- [x] GetDeviceByIdAsync_ReturnsDevice_WhenExists
|
|
|
|
|
- [x] GetDeviceByIdAsync_ReturnsNull_WhenNotExists
|
|
|
|
|
- [x] CreateDeviceAsync_SetsCreatedAtAndUpdatedAt
|
|
|
|
|
- [x] UpdateDeviceAsync_UpdatesDevice_WhenExists
|
|
|
|
|
- [x] UpdateDeviceAsync_ReturnsNull_WhenNotExists
|
|
|
|
|
- [x] DeleteDeviceAsync_ReturnsTrue_WhenDeviceExists
|
|
|
|
|
- [x] DeleteDeviceAsync_ReturnsFalse_WhenDeviceNotExists
|
|
|
|
|
- [x] CollectDeviceAsync_Skips_WhenDeviceNotExists
|
|
|
|
|
- [x] CollectDeviceAsync_Skips_WhenDeviceNotAvailable
|
|
|
|
|
- [x] GetDeviceStatusAsync_ReturnsDeviceStatus
|
|
|
|
|
|
|
|
|
|
### 5.6 DataStorageService 测试 (5个测试用例) ✅
|
|
|
|
|
- [x] StoreDeviceDataAsync_CallsUpdateDeviceStatus
|
|
|
|
|
- [x] StoreDeviceDataAsync_CompletesSuccessfully
|
|
|
|
|
- [x] StoreDeviceDataBatchAsync_ProcessesAllDevices
|
|
|
|
|
- [x] StoreDeviceDataBatchAsync_HandlesEmptyList
|
|
|
|
|
- [x] StoreProductionRecordAsync_CompletesSuccessfully
|
|
|
|
|
|
|
|
|
|
### 5.7 AlarmService 和 AlarmRuleService 测试 (20个测试用例) ✅
|
|
|
|
|
- [x] AlarmService: GetAllAlarmsAsync, GetAlarmByIdAsync, CreateAlarmAsync, DeleteAlarmAsync等
|
|
|
|
|
- [x] AlarmRuleService: GetAllAlarmRulesAsync, CreateAlarmRuleAsync, UpdateAlarmRuleAsync等
|
|
|
|
|
|
|
|
|
|
### 5.8 TemplateService 测试 (15个测试用例) ✅
|
|
|
|
|
- [x] GetAllTemplatesAsync, GetTemplateByIdAsync, CreateTemplateAsync, UpdateTemplateAsync等
|
|
|
|
|
|
|
|
|
|
### 5.9 AuthService 测试 (10个测试用例) ✅
|
|
|
|
|
- [x] LoginAsync_ReturnsSuccess_WhenCredentialsValid
|
|
|
|
|
- [x] LoginAsync_ReturnsFailure_WhenCredentialsInvalid
|
|
|
|
|
- [x] LogoutAsync_ReturnsTrue
|
|
|
|
|
- [x] UsernameExistsAsync, EmailExistsAsync
|
|
|
|
|
- [x] GetUserByIdAsync
|
|
|
|
|
|
|
|
|
|
### 5.10 UserService 测试 (11个测试用例) ✅
|
|
|
|
|
- [x] CreateUserAsync, GetUserByIdAsync, GetAllUsersAsync
|
|
|
|
|
- [x] UpdateUserAsync, ActivateUserAsync, DeactivateUserAsync
|
|
|
|
|
- [x] ChangePasswordAsync
|
|
|
|
|
|
|
|
|
|
**阶段交付物**: 所有测试通过,覆盖率≥80%
|
|
|
|
|
**Git提交**: "第五阶段:后端函数级测试完成"
|
|
|
|
|
**MD标记**: [完成] 待记录
|
|
|
|
|
**Git提交**: "304b776 添加DeviceCollectionService、DataStorageService、AuthService、UserService单元测试"
|
|
|
|
|
**MD标记**: [完成] 2026-04-13 12:50
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
@ -252,10 +281,10 @@
|
|
|
|
|
|
|
|
|
|
| 阶段 | 状态 | 完成时间 |
|
|
|
|
|
|------|------|----------|
|
|
|
|
|
| 第一阶段:环境准备 | [完成] | 2026-04-13 |
|
|
|
|
|
| 第二阶段:编译修复 | [待完成] | - |
|
|
|
|
|
| 第三阶段:核心服务 | [待完成] | - |
|
|
|
|
|
| 第四阶段:接口完善 | [待完成] | - |
|
|
|
|
|
| 第五阶段:后端测试 | [待完成] | - |
|
|
|
|
|
| 第六阶段:前端开发 | [待完成] | - |
|
|
|
|
|
| 第七阶段:部署配置 | [待完成] | - |
|
|
|
|
|
| 第一阶段:环境准备 | [完成] | 2026-04-13 10:30 |
|
|
|
|
|
| 第二阶段:编译修复 | [完成] | 2026-04-13 10:35 |
|
|
|
|
|
| 第三阶段:核心服务 | [完成] | 2026-04-13 11:00 |
|
|
|
|
|
| 第四阶段:接口完善 | [完成] | 2026-04-13 11:15 |
|
|
|
|
|
| 第五阶段:后端测试 | [完成] | 2026-04-13 12:50 |
|
|
|
|
|
| 第六阶段:前端开发 | [待开始] | - |
|
|
|
|
|
| 第七阶段:部署配置 | [待开始] | - |
|
|
|
|
|
|