* [misc] Enhance unit tests for repoTao::parseTaskComment() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:16:46 +08:00
co-authored by Claude
parent 08625885ca
commit 40e5bb36fb
2 changed files with 45 additions and 14 deletions
+14 -3
View File
@@ -1444,13 +1444,24 @@ class repoTest
return $diffs;
}
/**
* Test parseTaskComment method.
*
* @param string $comment
* @access public
* @return array
*/
public function parseTaskCommentTest(string $comment)
{
$rules = $this->objectModel->processRules();
$actions = array();
ob_start();
$result = $this->objectModel->parseTaskComment($comment, $rules, $actions);
ob_end_clean();
// 使用反射调用tao层的protected方法
$method = new ReflectionMethod($this->objectTao, 'parseTaskComment');
$method->setAccessible(true);
$result = $method->invokeArgs($this->objectTao, array($comment, $rules, &$actions));
if(dao::isError()) return dao::getError();
return $result;
}
+31 -11
View File
@@ -1,27 +1,47 @@
#!/usr/bin/env php
<?php
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
su('admin');
/**
title=测试 repoModel->parseTaskComment();
title=测试 repoTao::parseTaskComment();
timeout=0
cid=1
cid=0
- 解析完成任务属性8 @8
- 解析完成多个任务
- 测试步骤1:正常解析完成任务注释属性8 @8
- 测试步骤2:解析多个任务ID的注释
- 属性1 @1
- 属性8 @8
- 属性12 @12
- 测试步骤3:解析开始任务注释属性5 @5
- 测试步骤4:解析记录工时注释属性3 @3
- 测试步骤5:解析空注释内容 @0
- 测试步骤6:解析无效格式注释 @0
- 测试步骤7:解析混合类型任务注释
- 属性2 @2
- 属性9 @9
*/
include dirname(__FILE__, 5) . '/test/lib/init.php';
include dirname(__FILE__, 2) . '/lib/repo.unittest.class.php';
su('admin');
$repo = new repoTest();
$finishTaskComment = 'Finish Task #8 Cost:2h';
$finishTaskComment2 = 'Finish Task #1,8,12. Cost:3h';
// 测试数据:不同类型的任务注释
$finishTaskComment = 'Finish Task #8 Cost:2h'; // 完成单个任务
$multiTaskComment = 'Finish Task #1,8,12 Cost:3h'; // 完成多个任务
$startTaskComment = 'Start Task #5 Cost:1h Left:7h'; // 开始任务
$effortTaskComment = 'Effort Task #3 Cost:2h Left:6h'; // 记录工时
$emptyComment = ''; // 空注释
$invalidComment = 'This is just a normal comment without tasks'; // 无效格式
$mixedComment = 'Start Task #2 Cost:1h Left:5h and Finish Task #9 Cost:3h'; // 混合类型
r($repo->parseTaskCommentTest($finishTaskComment)) && p('8') && e('8'); //解析完成任务
r($repo->parseTaskCommentTest($finishTaskComment2)) && p('1,8,12') && e('1,8,12'); //解析完成多个任务
r($repo->parseTaskCommentTest($finishTaskComment)) && p('8') && e('8'); // 测试步骤1:正常解析完成任务注释
r($repo->parseTaskCommentTest($multiTaskComment)) && p('1,8,12') && e('1,8,12'); // 测试步骤2:解析多个任务ID的注释
r($repo->parseTaskCommentTest($startTaskComment)) && p('5') && e('5'); // 测试步骤3:解析开始任务注释
r($repo->parseTaskCommentTest($effortTaskComment)) && p('3') && e('3'); // 测试步骤4:解析记录工时注释
r($repo->parseTaskCommentTest($emptyComment)) && p() && e('0'); // 测试步骤5:解析空注释内容
r($repo->parseTaskCommentTest($invalidComment)) && p() && e('0'); // 测试步骤6:解析无效格式注释
r($repo->parseTaskCommentTest($mixedComment)) && p('2,9') && e('2,9'); // 测试步骤7:解析混合类型任务注释