From a3a833a28efc37f66872a868df4e39c17793073c Mon Sep 17 00:00:00 2001 From: liugang Date: Tue, 9 Sep 2025 15:43:36 +0800 Subject: [PATCH] + [misc] Add unit tests for releaseModel::updateRelated() method MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- .../test/lib/release.unittest.class.php | 17 ++++++++ module/release/test/model/updaterelated.php | 41 +++++++++++++++++++ .../yaml/releaserelated_updaterelated.yaml | 23 +++++++++++ 3 files changed, 81 insertions(+) create mode 100755 module/release/test/model/updaterelated.php create mode 100644 module/release/test/model/yaml/releaserelated_updaterelated.yaml diff --git a/module/release/test/lib/release.unittest.class.php b/module/release/test/lib/release.unittest.class.php index 2366f14424..201f5440ac 100644 --- a/module/release/test/lib/release.unittest.class.php +++ b/module/release/test/lib/release.unittest.class.php @@ -528,4 +528,21 @@ class releaseTest return array('error' => $e->getMessage()); } } + + /** + * Test updateRelated method. + * + * @param int $releaseID + * @param string $objectType + * @param int|string|array $objectIdList + * @access public + * @return mixed + */ + public function updateRelatedTest(int $releaseID, string $objectType, int|string|array $objectIdList): mixed + { + $result = $this->objectModel->updateRelated($releaseID, $objectType, $objectIdList); + if(dao::isError()) return dao::getError(); + + return $result; + } } diff --git a/module/release/test/model/updaterelated.php b/module/release/test/model/updaterelated.php new file mode 100755 index 0000000000..5b19d98d2c --- /dev/null +++ b/module/release/test/model/updaterelated.php @@ -0,0 +1,41 @@ +#!/usr/bin/env php +gen(0); +zenData('releaserelated')->gen(0); + +// 3. 用户登录 +su('admin'); + +// 4. 创建测试实例 +$releaseTest = new releaseTest(); + +// 5. 执行测试步骤 +r($releaseTest->updateRelatedTest(1, 'story', 101)) && p() && e(true); // 步骤1:整数ID输入 +r($releaseTest->updateRelatedTest(2, 'bug', '201,202,203')) && p() && e(true); // 步骤2:字符串ID列表输入 +r($releaseTest->updateRelatedTest(3, 'project', array(301, 302, 303))) && p() && e(true); // 步骤3:数组ID列表输入 +r($releaseTest->updateRelatedTest(4, 'story', '')) && p() && e(false); // 步骤4:空值输入 +r($releaseTest->updateRelatedTest(5, 'invalidtype', 501)) && p() && e(true); // 步骤5:无效对象类型 +r($releaseTest->updateRelatedTest(1, 'build', '601,601,602,602')) && p() && e(true); // 步骤6:重复ID处理 +r($releaseTest->updateRelatedTest(2, 'story', '701,702,703')) && p() && e(true); // 步骤7:混合格式处理 \ No newline at end of file diff --git a/module/release/test/model/yaml/releaserelated_updaterelated.yaml b/module/release/test/model/yaml/releaserelated_updaterelated.yaml new file mode 100644 index 0000000000..b841d7bc3b --- /dev/null +++ b/module/release/test/model/yaml/releaserelated_updaterelated.yaml @@ -0,0 +1,23 @@ +--- +title: 发布关联数据测试 +desc: 用于updateRelated方法的测试数据定义 +author: Claude +version: 1.0 + +fields: +- field: id + note: 关联记录ID + range: 1-100 + format: "" + +- field: release + note: 发布ID + range: 1-10 + +- field: objectID + note: 关联对象ID + range: 1-1000 + +- field: objectType + note: 关联对象类型 + range: story{5}, bug{5}, project{3}, build{3}, branch{2}, release{1}, leftBug{1} \ No newline at end of file