From fdc92d0a3b14f4abc11f12dc9ee6a548132914e7 Mon Sep 17 00:00:00 2001 From: liugang Date: Mon, 8 Sep 2025 20:07:14 +0800 Subject: [PATCH] + [misc] Add unit tests for markModel::isMark() 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 --- module/mark/test/lib/mark.unittest.class.php | 18 ++++++++ module/mark/test/model/ismark.php | 43 ++++++++++++++++++++ module/mark/test/model/yaml/mark_ismark.yaml | 34 ++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100755 module/mark/test/model/ismark.php create mode 100644 module/mark/test/model/yaml/mark_ismark.yaml diff --git a/module/mark/test/lib/mark.unittest.class.php b/module/mark/test/lib/mark.unittest.class.php index e122378ad8..409c58ff93 100755 --- a/module/mark/test/lib/mark.unittest.class.php +++ b/module/mark/test/lib/mark.unittest.class.php @@ -42,4 +42,22 @@ class markTest return $result; } + + /** + * Test isMark method. + * + * @param string $objectType + * @param int $objectID + * @param string $version + * @param string $mark + * @access public + * @return mixed + */ + public function isMarkTest(string $objectType, int $objectID, string $version, string $mark = 'view') + { + $result = $this->objectModel->isMark($objectType, $objectID, $version, $mark); + if(dao::isError()) return dao::getError(); + + return $result; + } } \ No newline at end of file diff --git a/module/mark/test/model/ismark.php b/module/mark/test/model/ismark.php new file mode 100755 index 0000000000..98d4480d7d --- /dev/null +++ b/module/mark/test/model/ismark.php @@ -0,0 +1,43 @@ +#!/usr/bin/env php +objectType->range('story,task,bug'); +$table->objectID->range('1-10'); +$table->version->range('1.0,1.1,2.0'); +$table->account->range('admin,user1,user2'); +$table->mark->range('view,edit,delete'); +$table->extra->range(''); +$table->gen(20); + +// 3. 用户登录(选择合适角色) +su('admin'); + +// 4. 创建测试实例(变量名与模块名一致) +$markTest = new markTest(); + +// 5. 强制要求:必须包含至少5个测试步骤 +r($markTest->isMarkTest('story', 1, '1.0', 'view')) && p('0:objectID') && e('1'); // 步骤1:查询存在的标记记录 +r($markTest->isMarkTest('story', 999, '1.0', 'view')) && p() && e('0'); // 步骤2:查询不存在的对象ID +r($markTest->isMarkTest('nonexistent', 1, '1.0', 'view')) && p() && e('0'); // 步骤3:查询不存在的对象类型 +r($markTest->isMarkTest('story', 1, '9.9', 'view')) && p() && e('0'); // 步骤4:查询不存在的版本 +r($markTest->isMarkTest('story', 1, '1.0', 'edit')) && p() && e('0'); // 步骤5:查询不同的标记类型 \ No newline at end of file diff --git a/module/mark/test/model/yaml/mark_ismark.yaml b/module/mark/test/model/yaml/mark_ismark.yaml new file mode 100644 index 0000000000..c053459a30 --- /dev/null +++ b/module/mark/test/model/yaml/mark_ismark.yaml @@ -0,0 +1,34 @@ +--- +title: isMark方法测试数据 +desc: 用于测试markModel::isMark()方法的测试数据配置 +author: Claude Code +version: 1.0 + +fields: +- field: id + note: 标记ID + range: 1-20 + prefix: "" + postfix: "" +- field: objectType + note: 对象类型 + range: story{7},task{7},bug{6} +- field: objectID + note: 对象ID + range: 1-10 +- field: version + note: 版本号 + range: 1.0{8},1.1{6},2.0{6} +- field: account + note: 用户账号 + range: admin{10},user1{5},user2{5} +- field: mark + note: 标记类型 + range: view{12},edit{4},delete{4} +- field: extra + note: 扩展字段 + range: []{20} +- field: date + note: 创建时间 + range: (-1M)-(w):1D + format: YYYY-MM-DD hh:mm:ss \ No newline at end of file