#!/usr/bin/env php group = array((object)array('field' => 'status')); $settings1->metric = array( (object)array('key' => 'active', 'field' => 'estimate', 'name' => '活跃需求'), (object)array('key' => 'closed', 'field' => 'estimate', 'name' => '已关闭需求'), (object)array('key' => 'draft', 'field' => 'estimate', 'name' => '草稿需求') ); // 测试步骤2:空SQL查询结果处理 $sql2 = "SELECT 'empty' as status, 0 as estimate WHERE 1=0"; $settings2 = new stdclass(); $settings2->group = array((object)array('field' => 'status')); $settings2->metric = array( (object)array('key' => 'empty', 'field' => 'estimate', 'name' => '空指标') ); // 测试步骤3:单一指标数据处理 $sql3 = "SELECT 'single' as type, 10 as value"; $settings3 = new stdclass(); $settings3->group = array((object)array('field' => 'type')); $settings3->metric = array( (object)array('key' => 'single', 'field' => 'value', 'name' => '单一指标') ); // 测试步骤4:多指标数据聚合处理 $sql4 = "SELECT 'test' as category, 5 as score UNION SELECT 'test' as category, 8 as score UNION SELECT 'prod' as category, 3 as score"; $settings4 = new stdclass(); $settings4->group = array((object)array('field' => 'category')); $settings4->metric = array( (object)array('key' => 'test', 'field' => 'score', 'name' => '测试分数'), (object)array('key' => 'prod', 'field' => 'score', 'name' => '生产分数') ); // 测试步骤5:异常设置对象处理(缺少必要字段) $sql5 = "SELECT 'error' as type, 1 as count"; $settings5 = new stdclass(); $settings5->group = array((object)array('field' => 'type')); $settings5->metric = array(); // 空的指标配置 // 5. 🔴 强制要求:必须包含至少5个测试步骤 r($screenTest->processRadarDataTest($sql1, $settings1)) && p('result:0') && e('5'); // 步骤1:正常情况,第一个指标值为5 r($screenTest->processRadarDataTest($sql2, $settings2)) && p('result:0') && e('0'); // 步骤2:空结果,第一个指标值为0 r($screenTest->processRadarDataTest($sql3, $settings3)) && p('result:0') && e('10'); // 步骤3:单指标,数据正确 r($screenTest->processRadarDataTest($sql4, $settings4)) && p('result:0') && e('13'); // 步骤4:聚合,test类别总分13 r($screenTest->processRadarDataTest($sql5, $settings5)) && p('indicatorCount') && e('0'); // 步骤5:异常配置,指标数组长度为0