// 简化的测试脚本 console.log('开始测试预警检测逻辑...'); // 模拟前端判断函数 function determineAlertType(record) { const alerts = [] // 检查电量预警 if (record.battery !== undefined && record.battery !== null && record.battery < 20) { alerts.push('battery') } // 检查脱落预警 (bandge_status为0) if (record.bandge_status !== undefined && record.bandge_status !== null && record.bandge_status === 0) { alerts.push('wear') } // 检查离线预警 (is_connect为0) if (record.is_connect !== undefined && record.is_connect !== null && record.is_connect === 0) { alerts.push('offline') } // 检查温度预警 if (record.temperature !== undefined && record.temperature !== null) { if (record.temperature < 20) { alerts.push('temperature_low') } else if (record.temperature > 40) { alerts.push('temperature_high') } } // 检查运动异常预警 (steps - y_steps为0) if (record.steps !== undefined && record.y_steps !== undefined && record.steps !== null && record.y_steps !== null) { const movementDiff = record.steps - record.y_steps if (movementDiff === 0) { alerts.push('movement') } } // 返回第一个预警类型,如果没有预警则返回null return alerts.length > 0 ? alerts[0] : null } // 测试用例 const testCases = [ { name: '正常设备', data: { battery: 85, temperature: 25, is_connect: 1, bandge_status: 1, steps: 1000, y_steps: 500 }, expected: null }, { name: '低电量预警', data: { battery: 15, temperature: 25, is_connect: 1, bandge_status: 1, steps: 1000, y_steps: 500 }, expected: 'battery' }, { name: '离线预警', data: { battery: 85, temperature: 25, is_connect: 0, bandge_status: 1, steps: 1000, y_steps: 500 }, expected: 'offline' } ]; // 运行测试 testCases.forEach((testCase, index) => { const result = determineAlertType(testCase.data); const success = result === testCase.expected; console.log(`测试 ${index + 1}: ${testCase.name} - ${success ? '✅ 通过' : '❌ 失败'}`); console.log(` 预期: ${testCase.expected}, 实际: ${result}`); }); console.log('测试完成!');