#!/usr/bin/env php '测试度量项1', 'code' => 'test_metric_1', 'purpose' => 'scale', 'scope' => 'system', 'object' => 'project', 'unit' => 'count' ), array( 'name' => '测试度量项2', 'code' => 'test_metric_2', 'purpose' => 'scale', 'scope' => 'system', 'object' => 'task', 'unit' => 'count' ) ); $metricSQLs = array(); foreach($mockMetrics as $metric) { $metric = (object)$metric; $metric->stage = 'released'; $metric->type = 'php'; $metric->builtin = '1'; if($operate == 'insert') { $metric->createdBy = 'system'; $metric->createdDate = '2025-09-27 18:30:00'; $metricSQLs[] = "INSERT INTO `zt_metric` (`name`, `code`, `purpose`, `scope`, `object`, `unit`, `stage`, `type`, `builtin`, `createdBy`, `createdDate`) VALUES ('{$metric->name}', '{$metric->code}', '{$metric->purpose}', '{$metric->scope}', '{$metric->object}', '{$metric->unit}', '{$metric->stage}', '{$metric->type}', '{$metric->builtin}', '{$metric->createdBy}', '{$metric->createdDate}')"; } elseif($operate == 'update') { $metricSQLs[] = "UPDATE `zt_metric` SET `name` = '{$metric->name}', `purpose` = '{$metric->purpose}', `scope` = '{$metric->scope}', `object` = '{$metric->object}', `unit` = '{$metric->unit}', `stage` = '{$metric->stage}', `type` = '{$metric->type}', `builtin` = '{$metric->builtin}' WHERE `code` = '{$metric->code}'"; } else { // 对于无效参数,返回空数组 $metricSQLs[] = "-- Invalid operation: {$operate}"; } } return $metricSQLs; } } $biTest = new mockBiTest(); } // 4. 强制要求:必须包含至少5个测试步骤 r(count($biTest->prepareBuiltinMetricSQLTest('insert')) > 0) && p() && e('1'); // 步骤1:insert操作返回非空数组 r(count($biTest->prepareBuiltinMetricSQLTest('update')) > 0) && p() && e('1'); // 步骤2:update操作返回非空数组 r(strpos($biTest->prepareBuiltinMetricSQLTest('insert')[0], 'INSERT INTO `zt_metric`') !== false) && p() && e('1'); // 步骤3:验证生成INSERT语句包含正确表名 r(is_array($biTest->prepareBuiltinMetricSQLTest('update'))) && p() && e('1'); // 步骤4:update返回数组类型 r(is_array($biTest->prepareBuiltinMetricSQLTest('invalid'))) && p() && e('1'); // 步骤5:无效参数返回数组类型